【发布时间】:2011-12-04 17:43:48
【问题描述】:
我对 MySQL 的 PHP 接口有些困惑。 mysql_query(用于执行命令和查询)的文档说明了返回值:
对于 SELECT、SHOW、DESCRIBE、EXPLAIN 等语句返回 结果集,mysql_query() 成功返回资源,或 FALSE 错误。
对于其他类型的 SQL 语句,INSERT、UPDATE、DELETE、DROP 等, mysql_query() 成功时返回 TRUE,错误时返回 FALSE。
返回的结果资源应该传递给mysql_fetch_array(), 和其他处理结果表的函数,以访问 返回数据。
使用 mysql_num_rows() 来找出返回的行数 SELECT 语句或 mysql_affected_rows() 找出有多少行 受到 DELETE、INSERT、REPLACE 或 UPDATE 语句的影响。
如果用户不这样做,mysql_query() 也会失败并返回 FALSE 有权访问查询引用的表。
我知道,假设我在 {SELECT, SHOW, DESCRIBE, EXPLAIN} 集中执行了一个命令,我可以调用 mysql_num_rows 来获取查询返回的行数。
除此之外......如果该集合中的查询成功执行(数据库方面)但没有返回结果行会发生什么? mysql_query 在这种情况下返回真还是假(即这是一个失败条件)?使用此界面检查成功查询的“无结果”可能性的最佳方法是什么?
【问题讨论】: