不久之前,我正在尝试使用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 "<p>$row[whatever]</p>";
}
} else {
echo "<p>No results found</p>";
}
Run Code Online (Sandbox Code Playgroud)
mysql_num_rows()对SQLite社区概念的强烈厌恶使我想知道它是否对PHP中的常规MySQL非常有效.
有没有更好的,更可接受的方法来检查PHP中的MySQL结果集的大小mysql_num_rows()?
编辑:我不只是mysql_num_rows用来计算 - 我会用它来COUNT查询.在输出所有内容之前,我用它来检查是否有任何结果.这对于显示搜索结果等内容非常有用 - 并不总能保证会有结果.在SQLite世界中,我必须发送一个COUNT查询,检查是否有什么,然后发送SELECT查询以获取所有内容.
Bri*_*say 10
如果你有结果,你已经有了一些东西告诉你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 "<p>{$row[whatever]}</p>";
} while($row = mysql_fetch_array($results));
} else {
echo "<p>No results found</p>";
}
} else {
echo "<p>There was an error executing this query.</p>";
}
Run Code Online (Sandbox Code Playgroud)