2012-02-05 54 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的風險。