2012-02-05 26 views
2

我如何检查我的查询结果?我试试这个,但是当结果为空时 - 错误没有显示。在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(); 
     } 

回答

1

注意sqlite_fetch_array()返回一个结果句柄,而不是行数,所以你不应该对零做比较:

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

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

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

请注意,你不应该通过直接将它在SQL查询作为能够SQL injection attacks使用用户提供的数据。另外,请确保数据库的内容,尤其是列表img1id中的值已正确转义,否则可能面临XSS attacks的风险。