Сбой запроса MySQL из-за зарезервированного ключевого слова? - PullRequest
3 голосов
/ 02 апреля 2011

Изменить: Если вы пришли сюда из Google, эта проблема вызвана тем, что слово int является зарезервированным ключевым словом в PHP. См. Конец принятого ответа.

Я все еще изучаю PHP / MySQL и не могу понять, что не так с моим кодом.

Я пытаюсь взять некоторые данные со страницы html и добавить их втаблица в моей базе данных.Я передаю данные с помощью запроса GET, затем извлекаю их с помощью PHP $_GET.

Я проверил это, и переменные правильно передаются в сценарий PHP, но они не отображаются вбаза данных.Сценарий умирает на этой линии: mysql_query($query) or die('data entry failed');

$database='a9293297_blog';
$con = mysql_connect('mysql2.000webhost.com','my_username','my_password');
mysql_select_db($database,$con) or die('failed to connect to database');

$username = $_GET['username'];
$password = $_GET['password'];
$charName = $_GET['charName'];
$sex = $_GET['sex'];
$class = $_GET['class'];
$race = $_GET['race'];
$str = $_GET['str'];
$sta = $_GET['sta'];
$dex = $_GET['dex'];
$int = $_GET['int'];
$cha = $_GET['cha'];

$query = "INSERT INTO Players (username, password, charName, sex, class, race, str, sta, dex, int, cha)
VALUES ('" . $username . "', '" . $password . "', '" . $charName . "', '" . $sex . "', '" . $class . "', '" . $race . "', '" . $str . "', '" . $sta ."', '" . $dex . "', '" . $int . "', '". $cha . "')";

mysql_query($query) or die('data entry failed'); // Fails here
mysql_close($con);

Ответы [ 2 ]

5 голосов
/ 02 апреля 2011

Чтобы лучше понять, что не так с вашим запросом SQL, используйте mysql_error () :

mysql_query($query) or die(mysql_error());

Сбросьте строковые переменные с помощью mysql_real_escape_string () . Пример:

$query = "INSERT INTO MYTABLE(MYFIELD) VALUES ('".mysql_real_escape_string($myVar)."');

EDIT

int представляется зарезервированным ключевым словом MySQL. Побег с кавычками:

INSERT INTO Players (username, password, ..., str, sta, dex, `int`, cha) ...
0 голосов
/ 02 апреля 2011

Я не уверен, но попробуйте это

Ваш код

$query="INSERT INTO Players (username, password, charName, sex, class, race, str, sta, dex, int, cha)VALUES ('".$username."', '".$password."', '".$charName."', '".$sex."', '".$class."', '".$race."', '".$str."', '".$sta."', '".$dex."', '".$int."', '".$cha."')";

В этом коде

$query="INSERT INTO Players (username, password, charName, sex, class, race, str, sta, dex, int, cha)VALUES ('$username', '$password', '$charName', '$sex', '$class', '$race', '$str', '$sta', '$dex', '$int', '$cha')";

Может быть, это поможет, если вы удалите "и.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...