Не может выяснить что случилось с моим php/sql оператором

Таким образом, это - вероятно, немой вопрос о новичке, но я смотрел на него и не могу понять это. Немного фона: просто практикуя создание веб-приложения, форма на странице 1 берет в некоторых значениях от пользователя, сообщения их к следующей странице, которая содержит код, чтобы соединиться с DB и заполнить соответствующие таблицы.

Я устанавливаю соединение с БД успешно, вот код, который содержит запрос:

$conn->query("SET NAMES 'utf9'");         

$query_str = "INSERT INTO 'qa'.'users' ('id', 'user_name','password' ,'email' ,'dob' ,'sx') VALUES (NULL, $username, $password, $email, $dob, $sx);";

$result = @$conn->query($query_str);

Вот ошибка, которая является отказавшим запросом returned:Insert: у Вас есть ошибка в Вашем синтаксисе SQL; проверьте руководство, которое соответствует Вашей серверной версии MySQL для правильного синтаксиса для использования близких ''быстродействующих'.'users' ('идентификатор', 'user_name', 'пароль', 'электронная почта', 'д.р.'', в строке 1

Заранее спасибо!

1
задан Olegious 13 May 2010 в 04:39
поделиться

4 ответа

Если ничего не изменилось с тех пор, как я занимался MySQL в PHP, завершайте имена db/столбцов/таблиц обратными знаками (`), а не апострофами (').

1
ответ дан 3 September 2019 в 00:35
поделиться

Вам нужно экранировать имена столбцов обратной кавычкой (`) вместо (')

Вам также необходимо правильно экранировать фактические значения, которые вы вставляете (используйте одинарные кавычки)

{{1 }}
0
ответ дан 3 September 2019 в 00:35
поделиться

Боже мой, ни один правильный ответ

$query_str = "
INSERT INTO `qa`.`users` (`id`, `user_name`,`password` ,`email` ,`dob` ,`sx`) 
VALUES (NULL, '$username', '$password', '$email', '$dob', '$sx')";

идентификаторы не цитируются обратными кавычками, в то время как строки цитируются апострофами!

, и я надеюсь, что вы передали все свои переменные через строку mysql_real_escape ПЕРЕД тем, как поместить ее в запрос, например: [

$username = mysql_real_escape string($username);

] и так далее

0
ответ дан 3 September 2019 в 00:35
поделиться

Хороший общий метод устранения неполадок - заставить запрос работать через другой интерфейс к базе данных. Например, phpMyAdmin. Если он работает там, у вас есть уверенность в дальнейшем. Или вы можете найти, как исправить ваш SQL. (phpMyAdmin удобен тем, что он преобразует ваш SQL в готовую строку для PHP)

.
1
ответ дан 3 September 2019 в 00:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: