当您的查询中有错误导致其失败时,将显示此错误消息。
注意:如果没有行受到查询的影响,则不会出现此错误。只有具有无效语法的查询才会生成此错误。
故障排除步骤
确保你有你的开发服务器配置为显示所有错误。你可以将它放在你的文件的顶部或者你的配置文件中:error_reporting(-1);.如果你有任何语法错误,这会将它们指向你。使用mysql_error()
。 mysql_error()
将报告MySQL执行查询时遇到的任何错误。
使用范例:
mysql_connect($host, $username, $password) or die("cannot connect");
mysql_select_db($db_name) or die("cannot select DB");
$sql = "SELECT * FROM table_name";
$result = mysql_query($sql);
if (false === $result) {
echo mysql_error();
}
从运行MySQL命令行或像phpMyAdmin工具查询。如果你的查询语法错误,这会告诉你它是什么。
确保您的报价是正确的。缺少关于查询或值的引用会导致查询失败。
确保你逃脱你的价值观。查询中的引号可能导致查询失败(并且还会让您打开SQL注入)。使用mysql_real_escape_string()来转义您的输入。
确保你没有混合mysqli_ *和mysql_ *函数。它们不是一回事,也不能一起使用。 (如果你要选择一个或另一个棍子mysqli_ *。为什么见下文)。
mysql_ *函数不应该被用于新的代码其他提示。他们不再被维护,社区已经开始了贬值过程。相反,您应该了解准备好的声明并使用PDO或MySQLi。如果你不能决定,这篇文章将有助于选择。如果你在意学习,这里有很好的PDO教程。
我希望你逃避你的变量之间取出的空间。请注意,'mysql'扩展将很快被弃用,并在将来被删除。考虑使用'mysqli' – bear
@ bear不需要转义变量。 PHP在使用双引号时区分变量。 – P5Coder
@ P5Coder如果一个变量包含''',则查询将失败。 – bear