[英]PDO, MySQL SELECT statement returning boolean true?
只是在我的MySQL語句中使用SELECT,試圖獲取列。
$last_visit = $db->prepare( 'SELECT `last_visit` FROM `visitors` WHERE `ip` = :ip' )
->execute( $arr_ip );
var_dump( $last_visit );
var_dump的輸出是bool(true)
而不是我需要的數據。 嘗試->fetch()
僅引發錯誤。
我能做什么? 這阻礙了我的整個項目,無論我在哪里,我都無法弄清楚出了什么問題。 正確的數據在數據庫中,連接正確並且INSERT有效。
如文檔中所述, execute()
返回一個布爾值。 看一下fetch()的示例,看看您應該如何使用PDO。
在您的情況下,代碼應如下所示:
$stmt = $db->prepare( 'SELECT `last_visit` FROM `visitors` WHERE `ip` = :ip' );
$stmt->bindParam(':ip', $arr_ip);
$stmt->execute();
if($row = $stmt->fetch()){
$last_visit = $row['last_visit'];
}else{
// whatever you like to do if there's no result...
}
編輯:
針對您的評論的其他信息:
對於UPDATE
或DELETE
,您可以像您的示例一樣執行單線操作,因為您可能不需要結果(或者只是true
/ false
來查看請求是否成功)。
對於SELECT
,您需要fetch()
結果。 您可以不執行bindParam()
並bindParam()
執行參數,就像您嘗試過的那樣,但是如果沒有fetch()
,則不會得到結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.