可能重复:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
背景资料:
对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他语句返回 resultset,mysql_query()在成功时返回资源,或者返回FALSE 错误。
对于其他类型的SQL语句,INSERT,UPDATE,DELETE,DROP等, mysql_query()成功时返回TRUE,错误时返回FALSE。
如果SELECT返回有关成功的资源,它在成功时实际返回TRUE吗?那么它仍然有效吗?:
<?php
$result = mysql_query('SELECT * WHERE 1=1');
if ($result) {
//resultset is valid?
}
?>
我几乎可以肯定它确实如此,但它是如何工作的? mysql_query()只返回几个属性吗?
答案 0 :(得分:2)
来自PHP manual entry on booleans:
转换为布尔值时,会考虑以下值 FALSE:
- 布尔值FALSE本身
- 整数0(零)
- 浮点数0.0(零)
- 空字符串,字符串“0”
- 包含零元素的数组
- 一个零成员变量的对象(仅限PHP 4)
- 特殊类型NULL(包括未设置的变量)
- 从空标签创建的SimpleXML对象
其他每个值都被视为TRUE(包括任何资源)。
重点是我的,但适用于你的情况。
另外,请勿在代码中使用mysql_*
函数。这些功能不再被维护,并且是being deprecated。相反,您应该使用MySQLi或PDO。不知道用哪个? This article应该有所帮助。