检查sqlite中的空选择?

时间:2012-02-05 11:21:55

标签: php sqlite

如何检查查询结果?我试试这个,但是当结果为空时 - 错误没有显示。

$result = sqlite_query($db, "SELECT * FROM catalog WHERE cat=".$_GET["cat"]." AND size".$size.""); 
        if($result !== 0) {
            while ($row = sqlite_fetch_array($result)) { 
                echo '<img src="'.$row['img1'].'" alt="'.$row['id'].'" />'."\r\n"; 
            } 
        } else {
            err2();
        }

3 个答案:

答案 0 :(得分:1)

您可以使用sqlite_num_rows()函数检查返回行的数量

http://www.php.net/manual/en/function.sqlite-num-rows.php

答案 1 :(得分:1)

请注意,sqlite_fetch_array()返回结果句柄,而不是行数,因此您不应将其与零进行比较:

  

此函数将在失败时返回结果句柄或FALSE。

使用sqlite_num_rows()确定返回的行数,例如

if(sqlite_num_rows($result) !== 0) {
  ...
} else {
  ...
}

请注意,您不应该通过直接将其合并到SQL查询中来使用用户提供的数据,因为它允许SQL injection attacks。此外,请确保数据库的内容(尤其是列img1id中的值)已正确转义,否则您可能会受到XSS attacks的攻击。<​​/ p>

答案 2 :(得分:1)

查看http://php.net/manual/en/function.sqlite-num-rows.php

$rows = sqlite_num_rows($result);

如果结果为空,$ rows将为0