不久之前,我正在尝试使用SQLite,试图将我的一些网站移植到使用它而不是MySQL.我很想知道缺少一个计算结果的函数,比如PHP mysql_num_rows()
.稍微搜索一下后,我发现了这个邮件列表,据我所知,SQLite没有这个功能,因为它效率低下.它声明编写需要知道返回多少行的代码是不好的形式.
我通常mysql_num_rows
用来检查空的返回结果.例如:
$query = "SELECT * FROM table WHERE thing = 'whatever'"; $results = mysql_query($query); if (mysql_num_rows($results)) { while ($row = mysql_fetch_array($results)) { echo "$row[whatever]
"; } } else { echo "No results found
"; }
mysql_num_rows()
对SQLite社区概念的强烈厌恶使我想知道它是否对PHP中的常规MySQL非常有效.
有没有更好的,更可接受的方法来检查PHP中的MySQL结果集的大小mysql_num_rows()
?
编辑:我不只是mysql_num_rows
用来计算 - 我会用它来COUNT
查询.在输出所有内容之前,我用它来检查是否有任何结果.这对于显示搜索结果等内容非常有用 - 并不总能保证会有结果.在SQLite世界中,我必须发送一个COUNT
查询,检查是否有什么,然后发送SELECT
查询以获取所有内容.
如果你有结果,你已经有了一些东西告诉你mysql_fetch_array()
.如果没有更多的行要获取(从php.net),它返回false .
$query = "SELECT * FROM table WHERE thing = 'whatever'"; $results = mysql_query($query); if($results) { $row = mysql_fetch_array($results); if($row) { do { echo "{$row[whatever]}
"; } while($row = mysql_fetch_array($results)); } else { echo "No results found
"; } } else { echo "There was an error executing this query.
"; }