2016-03-06 3 views
1

Я хочу добавить строку в mysql через php.неизвестный столбец 'X' в списке полей

Короче говоря, код выглядит следующим образом:

$email = mysqli_real_escape_string($mysqli, $_POST['email']); 

     $token = md5(uniqid(rand(), true)); 


      $mysqli->query('SET NAMES utf8'); 

      $insertsignup = "INSERT INTO `betasignup`(`signupDate`, `email`, `token`, `activated`) SELECT CURDATE(), '" . $email . "', '" . $token . "', 'N';"; 
      echo $insertsignup; 

      $insert = $mysqli->query($insertsignup) or   
       die(mysqli_error($mysqli)); 

«Эхо» было вставлено для отладки запроса.

Выход:

INSERT INTO betasignup (signupDate, email, token, activated) ВЫБОР CURDATE(), '[email protected]', '58d15fe49629b3942a58acfb64a0cb07', 'N';

следует:

Неизвестного столбец 'маркер' в 'списке поля'

Вот таблица:

CREATE TABLE IF NOT EXISTS `betasignup` (
    `ID` int(11) NOT NULL AUTO_INCREMENT, 
    `signupDate` date NOT NULL, 
    `email` text NOT NULL, 
    `token` text NOT NULL, 
    `activated` enum('Y','N') NOT NULL, 
    PRIMARY KEY (`ID`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

Запросы отлично работает при вставке phpmyadmin или mysql-commandline.

В localhost dev-environment работает, в реальном времени (в сети) нет.

Любые идеи?

+1

Потому что на prod нет поля 'token'? –

+0

см. Первый ответ :) – Sili

ответ

1

Возможно, ваша производственная база данных не похожа на вашу среду разработки? По всей видимости, отсутствует поле «токенов».

+0

Я добавил структуру базы данных prod. поле «токен» доступно, и запрос работает в phpmyadmin – Sili

0

Нашел:

просто переместил все это от услуг хостинга владеть rootserver и не обновлять мой мозг ...

база данных также переехал в rootserver. phpmyadmin был все еще веб-хостом ...

Разумеется, столбец «токен» пропал без вести.

спасибо!

Смежные вопросы