MySQL ошибка запроса - PullRequest
       15

MySQL ошибка запроса

0 голосов
/ 12 июля 2009

Что не так с этим запросом MySQL?

$name = mysqli_real_escape_string($db,$_POST['name']);
$email = mysqli_real_escape_string($db,$_POST['email']);
$comment = mysqli_real_escape_string($db,$_POST['content']);
$dt = date("F j, Y, g:i a");
$sql = mysqli_query($db, "INSERT INTO `tbl_contact` (`id`, `name`, `email`, `comment`, `date`) 
VALUES (NULL, '".$name."', '".$email."', '".$comment."', '".$dt."'");

Не удается с

У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом со строкой 2.

Спасибо:)

Ответы [ 3 ]

6 голосов
/ 12 июля 2009

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

..., '".$dt."')");
              ^
              Added closing parenthesis for the VALUES clause.
1 голос
/ 12 июля 2009

Действительно, вам нужно закрыть скобки.

В следующий раз, если вы получите этот тип ошибки, попытайтесь выяснить, какой SQL в действительности выполняется, распечатав его. Затем вы можете либо проанализировать запрос вручную (вы бы видели его через несколько секунд), либо запустить его в какой-либо среде, где вы можете легко изменять и выполнять запросы, если запрос более сложный.

0 голосов
/ 14 июля 2009

Одна из хороших практик, которых я придерживаюсь, чтобы избежать таких ловушек, - это создать запрос в одну строку и выполнить запрос в следующей строке, как это

$sql="INSERT INTO `tbl_contact` (`id`, `name`, `email`, `comment`, `date`) 
VALUES (NULL, '".$name."', '".$email."', '".$comment."', '".$dt."')";

$result = mysqli_query($sql);

Еще один трюк, позволяющий сэкономить время, - исключение ненужных конкатенаций для добавления '. Ваш sql мог бы быть проще, как этот

$sql="INSERT INTO `tbl_contact` (`id`, `name`, `email`, `comment`, `date`) 
VALUES (NULL, '$name', '$email', '$comment', '$dt')";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...