簡體   English   中英

如何使用PHP和SQLite 3檢查選擇查詢返回的值還是為空

[英]How to check if select query returned values or empty with PHP and SQLite 3

我正在使用SQLite3PHP創建一個小類,這意味着我不需要任何插件或其他類,而只是普通的SQLite3PHP

當前,我正在嘗試從數據庫中檢索值,但是我想檢查在這種情況下是否有結果:

$select = $db->query("SELECT * FROM views WHERE address = '$ip' AND page = ''");

經過一番搜索,我找不到任何具體的信息,但我想我沒有找到。

首先,我嘗試了:

   if($select){
        // result returned
   }else{
        // no results
   }

然后此解決方案奏效了(以前總是失敗):

while($row = $select->fetchArray(SQLITE3_ASSOC) ){
    $exists = TRUE;
    break;
}

if($exists == TRUE){
    // result returned
}else{
    // no results
}

但這似乎很棘手...有沒有辦法檢查選擇查詢是否返回內容?

您可以在“運行時”中將其簡單化:

$emptyArr  = array();
$filledArr = array(1,2,3,4,5);

if ($emptyArr) {
    echo 'Empty array is not empty!';
}
if (!$filledArr) {
    echo 'Filled array is empty!';
}

因為這樣: http : //php.net/manual/ru/sqlite3result.fetcharray.php將返回填充數組false 然后等於:

$arr = array();
var_dump((false == $arr)); // true

特別適合所有dizzzlikers! 難以置信的甜蜜蜂蜜解決方案:

if ($res = $select->fetchArray(SQLITE3_ASSOC)) {
    foreach ($res as $item) {
        // output
    }
} else {
    // nothing
}

你不能接受變量,可以使用issetempty

if(!empty($var)){
   // Variable is not empty and is set
}

if(isset($var)){
    // Variable is set, may be empty though.
}

if(empty($var)){
    // Variable is not set or is empty.
}

if(!isset($var)){
    // Variable is not set.
}

這也適用於數組和數組鍵。

有一個名為*-> numRows()的函數;

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

返回從數據庫獲取的行數。 我不使用sqlite,但是我很確定dbquery會從數據庫中返回一個值數組(如果是成功的話,在本例中是一個對象),並返回true / false。

嘗試:

$select = $db->query("SELECT * FROM views WHERE address = '$ip' AND page = ''");



$rows = $select->numRows();

echo $rows;  //returns # of rows

or    

if ($rows){
//return anything but 0 would eval true..
}

沒有人給出完美的答案,但是每條評論都幫助我正確了。 因此,如果您有相同的問題,請檢查所有評論,然后檢查我的答案。 @Deep的特殊幫助

if($select->fetchArray(SQLITE3_ASSOC)){
    // results returned
}else{
    // no results. empty.
}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM