簡體   English   中英

PDO,MySQL SELECT語句返回布爾值true嗎?

[英]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...
}

編輯:
針對您的評論的其他信息:

對於UPDATEDELETE ,您可以像您的示例一樣執行單線操作,因為您可能不需要結果(或者只是true / false來查看請求是否成功)。

對於SELECT ,您需要fetch()結果。 您可以不執行bindParam()bindParam()執行參數,就像您嘗試過的那樣,但是如果沒有fetch() ,則不會得到結果。

暫無
暫無

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

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