mysql_query возвращает false после успешного выполнения запроса в PHP - PullRequest
2 голосов
/ 05 февраля 2010

У меня странная ошибка, когда я вызываю запрос вставки, он успешно выполняется (строка появляется в БД), но mysql_query возвращает false. Он возвращает false, только когда определенное поле содержит знак подчеркивания или тире (или, возможно, некоторые другие символы, но это два, с которыми я столкнулся до сих пор).

"INSERT INTO Hoopoes (name, owner, dbuser, dbpass, package) VALUES "
                        ."('".$this->config['hname']."', '".$this->config['email']."','".$db_prefix.$db_username."','$db_userpass',"
                        ."'".$this->config['package']."')"

Так что это запрос. Сбой, когда config['hname'] содержит _ или -. Я не понимаю почему. Строка появляется в БД, но mysql_query по-прежнему возвращает false. Любое понимание будет высоко ценится

Ответы [ 4 ]

2 голосов
/ 07 января 2012

Хорошо проверить, что возвращает mysql_error (). В моем случае это было «таблица database_name.table_name не существует». Это дало мне подсказку, и после второй проверки я понял, что я создал table_name в PHPMyAdmin в другой базе данных, чем database_name: P

1 голос
/ 05 февраля 2010

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

// Connect...
mysql_connect("server", "user", "pass");
// ...and select the database!
mysql_select_db("database");

// Now you're good to go. :)

Вы можете использовать ваш запрос INSERT без выбора базы данных при указании схемы, например:

mysql_query("INSERT INTO `database`.`table` VALUES (...);
0 голосов
/ 11 декабря 2016

Даже если SQL-запрос успешно выполнен, это не значит, что он должен возвращать TRUE. Он возвращает TRUE, только если запросы выполняются в правильном порядке. Надеюсь, именно поэтому вы получаете ЛОЖЬ.

http://dev.mysql.com/doc/refman/5.7/en/mysql-real-query.html

0 голосов
/ 05 февраля 2010

Хм .. это было странно. Запрос сработал и успешно вставлен, очевидно, без выбранной базы данных. Я добавил вызов mysql_select_db прямо над запросом, и теперь он работает точно так же, но запрос возвращает true.

Странно

Спасибо за помощь!

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