Я вставляю значение в таблицу MySQL из php
как:
$journey = $_POST['way']; $from = $_POST['from']; $to = $_POST['to']; $dpdt = $_POST['dp_date']; $rtdt = $_POST['rt_date']; $fare = $_POST['fare']; $sql = "insert into tours set " . "journey='$journey', from='$from', to='$to', dp_date=CAST('$dpdt' AS DATE), " . "rt_date=CAST('$rtdt' AS DATE), fare='$fare'";
при попытке echo
для $sql
я получаю вывод как:
insert into tours set journey='round', from='Aurangabad', to='Kashmir', dp_date=CAST('27-08-2013' AS DATE), rt_date=CAST('21-08-2013' AS DATE), fare='2500'
но я постоянно получаю то же сообщение об ошибке:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from=Aurangabad, to='Kashmir', dp_date=CAST('27-08-2013' AS DATE), rt_date=CAST(' at line 1
даже если я попытаюсь удалить '
вокруг значений имен столбцов.
Я использую тот же синтаксис для вставки данных, и это работает нормально.
Что случилось с этим?
Почему MySQL не дает правильной ошибки для такой ужасной ошибки?
`from`='$from', `to`='$to'
FROM
– зарезервированное слово, использующее backtick вокруг него.
FROM
– зарезервированное ключевое слово, и вы не должны его использовать. См. Здесь
'from' и 'to' являются резервными словами
Попробуйте сделать так
[from] = 'Aurangabad', [to] ='Kashmir'
FROM
– это ключевое слово SQL. Вы не должны использовать это без разделителей в качестве имени столбца.