0

可能重复:
mysql_fetch_array() 期望参数 1 是资源,选择中给出的布尔值

背景资料:

对于 SELECT、SHOW、DESCRIBE、EXPLAIN 和其他返回结果集的语句,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() 是否只返回几个属性?

4

1 回答 1

2

关于 booleans 的 PHP 手册条目

转换为布尔值时,以下值被视为 FALSE:

  • 布尔值 FALSE 本身
  • 整数 0(零)
  • 浮点数 0.0(零)
  • 空字符串和字符串“0”
  • 一个元素为零的数组
  • 具有零成员变量的对象(仅限 PHP 4)
  • 特殊类型 NULL(包括未设置的变量)
  • 从空标签创建的 SimpleXML 对象

其他所有值都被视为 TRUE(包括任何资源)。

重点是我的,但适用于您的情况。

另外,不要mysql_*在代码中使用这些函数。这些功能不再维护,正在被弃用。相反,您应该使用MySQLiPDO。不知道用哪个?这篇文章应该有所帮助。

于 2012-11-15T00:22:58.863 回答