[英]How to check if select query returned values or empty with PHP and SQLite 3
我正在使用SQLite3
和PHP
創建一個小類,這意味着我不需要任何插件或其他類,而只是普通的SQLite3
和PHP
。
當前,我正在嘗試從數據庫中檢索值,但是我想檢查在這種情況下是否有結果:
$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
}
有一個名為*-> 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.