在PHP中成功执行查询后,mysql_query返回false

时间:2010-02-04 23:47:12

标签: php mysql

我有一个奇怪的错误,我调用了一个插入查询,它成功执行(行显示在数据库中),但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 个答案:

答案 0 :(得分:2)

检查mysql_error()返回的内容是很好的。 在我的情况下,它是'table database_name.table_name不存在'。这给了我一个线索,经过第二次检查,我意识到我已经在另一个数据库中创建了PHPMyAdmin中的table_name而不是database_name:P

答案 1 :(得分:1)

您必须在连接之后和任何查询之前选择数据库:

// 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 (...);

答案 2 :(得分:0)

嗯..这是一个奇怪的。在没有选择数据库的情况下,查询工作并成功插入。我在查询上方直接添加了一个mysql_select_db调用,现在它的工作原理相同,但查询返回true。

奇怪

感谢您的帮助!

答案 3 :(得分:0)

即使SQL查询成功执行也不意味着它应该返回TRUE。如果查询以正确的顺序执行,它只返回TRUE。希望这就是为什么你会得到一个错误的原因。

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