PHP обрабатывает команду MySQL INSERT INTO - PullRequest
0 голосов
/ 14 марта 2012

У меня была проблема, которая беспокоила меня некоторое время.Я не знаю, слеп ли я или глуп, но у меня есть запрос MySQL, встроенный в страницу php.Когда он выполняется, ничего не происходит!Это запрос:

INSERT INTO objective (IdUser, CreationYear, Description) 
VALUES ('$idFor','$date','$textAreaObjective1a')

Я решил повторить запрос, и он выдает полную строку текста, которая мне нужна.Когда я копирую и вставляю строку прямо в MySQL, он выполняет запрос и добавляет строку в базу данных.

INSERT INTO objective (IdUser, CreationYear, Description) 
VALUES ('2', '20130314', 'hello 1')

EDIT Вот код PHP, используемый для вставки -

$objectiveCreation = mysql_query("
    INSERT INTO objective (IdUser, CreationYear, Description) 
    VALUES ('$idFor','$date','$textAreaObjective1a')");

Итак, проблема в том, почему php не может обработать команду?Я пытался поместить все значения в цитаты и удалить все цитаты.Вывод команды, затем ее копирование и вставка вручную разрешает ее и добавляет данные, поэтому запрос кажется удовлетворительным.Я добавил команду mysql_error () сразу после запроса, и она возвращает следующую ошибку:

Unknown column 'CreationYear' in 'field list' 

Столбец находится в базе данных.Вот структура:

    IdObjective         int(10)
    IdUser              int(10)
    PercenOfComp        float
    CreationYear        date            
    Description         text
    Status              varchar(45)

Ответы [ 3 ]

1 голос
/ 14 марта 2012

Попробуйте $dateToBeInserted=date("Y-m-d", $date);

Поскольку вы определили date как тип, MYSQL ожидает, что он будет выглядеть следующим образом: 2013-03-14

1 голос
/ 14 марта 2012

Вы пробовали

INSERT INTO `objective` (`IdUser`, `CreationYear`, `Description`) VALUES ('2', '20130314', 'hello 1')

Вы также можете открыть phpmyadmin и использовать функцию вставки (в горизонтальной строке меню при просмотре таблицы) и заполнить поля, нажать go и скопировать запрос, как показано.

0 голосов
/ 14 марта 2012

Я выполнил ваш запрос, который отлично подходит для меня. Вы тоже можете попробовать это -

INSERT INTO `objective` ( `IdUser` , `CreationYear` , `Description` ) VALUES ( 2, '20130314', 'hello 1' ) ;

Это покажет что-то вроде ниже в phpMyAdmin используя xampp-

enter image description here

Поскольку поле «CreationYear» относится к типу date, оно автоматически преобразует ваши данные в формат даты MySQL по умолчанию перед вставкой в ​​таблицу. Но все же вы можете попробовать следующее -

INSERT INTO objective (IdUser, CreationYear, Description) ЗНАЧЕНИЯ (2, '2013-03-14', 'hello 1');

Вы также можете попробовать следующее для автоматического форматирования даты в запросе MySQL -

INSERT INTO `objective` ( `IdUser` , `CreationYear` , `Description` ) VALUES ('2', DATE( 20130314 ) , 'hello 1');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...