![](/img/trans.png)
[英](PHP + PDO + Sqlite3) How to check query returned is null?
[英]How do I check db query returned results using PHP's PDO
如何在PHP中使用PDO檢查我的結果集是否為空?
$SQL = "SELECT ......... ORDER BY lightboxName ASC;";
$STH = $DBH->prepare($SQL);
$STH->bindParam(':member_id', $member_id);
$STH->execute();
$STH->setFetchMode(PDO::FETCH_ASSOC);
while($row = $STH->fetch()) {
$lightbox_name = $row['lightboxName'];
$lightbox_id = $row['lightboxID'];
echo '<option value="'.$lightbox_id.'">'.$lightbox_name.'</option>';
}
我過去常常這樣做:
$result = mysql_query("SELECT ...... ORDER BY lightboxName ASC;");
if(!$result) { echo 'No results found!'; }
但是剛剛開始使用PDO和准備好的語句並且對$STH
檢查似乎沒有按預期工作 - 它總是有價值的!
我會嘗試使用rowCount()
:
$rows_found = $STH->rowCount();
但是,根據手冊:
如果關聯的PDOStatement執行的最后一個SQL語句是SELECT語句,則某些數據庫可能會返回該語句返回的行數。 但是,並不保證所有數據庫都有這種行為,不應依賴於便攜式應用程序。
如果它不適合您,您可以使用手冊中提到的其他方法。
您當然也可以在while
循環之前設置變量, while
循環中更改它並在循環后檢查值...
好的,這里是它確實工作的代碼,最后經過幾個小時的環顧四周,混合匹配這里的一些答案實際上會在你的select語句中返回一個計數。 SQL是select語句,顯然$ username1是用戶名文本框的帖子。 $ password1與用戶名設置相同。 除此之外,您應該擁有使其工作所需的一切,只需用您的變量代替我的變量。 我希望這可以節省一些人的時間,因為我搜索了一段時間試圖得到我想要的東西。 這個解決方案適用於你有一個select語句,你希望能夠繼續或停止它返回一些東西。
SQL = 'SELECT * from Users WHERE Username = :Username AND Password = :Password';
STH = $conn->prepare($SQL);
STH->bindParam(':Username', $username1);
STH->bindParam(':Password', $password1);
STH->execute();
STH->setFetchMode(PDO::FETCH_ASSOC);
row_count = $STH->rowCount();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.