Ошибка при вставке в таблицу SQL с PHP - PullRequest
0 голосов
/ 05 августа 2010

Это мой код:

function function() {
$isbn = $_REQUEST["isbn"];
$price = $_REQUEST["price"];
$cond = $_REQUEST["cond"];

$con = mysql_connect("localhost","my_usernam", "password");
if (!$con) die('Could not connect:' . mysql_error());
mysql_select_db("my_database",$con);

$sql="INSERT INTO 'Books' (isbn, price, condition)
VALUES ('$isbn','$price','$cond')";


if (!mysql_query($sql,$con))
 {
 die('Error: ' . mysql_error());
 }

mysql_close($con);
return "It works";

Но при запуске это приводит к:

Ошибка: у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с '' Books '(isbn, price ....

Кто-нибудь знает, почему это происходит?

Ответы [ 2 ]

3 голосов
/ 05 августа 2010

Вы должны использовать обратные кавычки вместо одинарных кавычек для имен таблиц и полей:

$sql="INSERT INTO `Books` (`isbn`, `price`, `condition`)
    VALUES ('$isbn','$price','$cond')";

будет работать.

пс. чтобы предотвратить все виды неприятных дыр в безопасности, экранируйте поля ввода с помощью:

$isbn = mysql_real_escape_string($_REQUEST["isbn"]);
// etc etc for all fields
0 голосов
/ 05 августа 2010

Оберните имена таблиц в кавычки, а не в кавычки, и убедитесь, что экранировали свой ввод для безопасности:

$sql="INSERT INTO `Books` (`isbn`, `price`, `condition`)
VALUES ('" . mysql_real_escape_string($isbn) . "',
      '" . mysql_real_escape_string($price) . "',
      '" . mysql_real_escape_string($cond) . "')";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...