我有一个奇怪的错误,我调用了一个插入查询,它成功执行(行显示在数据库中),但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。任何见解都将非常感激
答案 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)
奇怪
感谢您的帮助!
答案 3 :(得分:0)
即使SQL查询成功执行也不意味着它应该返回TRUE。如果查询以正确的顺序执行,它只返回TRUE。希望这就是为什么你会得到一个错误的原因。
http://dev.mysql.com/doc/refman/5.7/en/mysql-real-query.html