2017-08-01 77 views
2

我正在使用PHP 5和MySQL的最新版本。在準備好的mysql查詢中不能使用MAX()

查詢如下:

$sql = "SELECT max(num) 
    FROM list 
    WHERE value = ?"; 

如果我手動替換值與值:$my_value和我從phpMyAdmin的執行查詢我獲得正確的結果。

相反,如果我以這種方式編寫查詢,我沒有獲得任何東西:

$stmt = $con->prepare($sql); 
$stmt->bind_param("s", $my_value); 
$stmt->execute(); 
$stmt->store_result(); 
$stmt->bind_result($num); 
$stmt->close(); 
echo "Num: [" . $num . "]"; 

輸出是:Num: []

+1

我相信你仍然需要用'bind_result'來獲取',但我並不經常使用mysqli。 – chris85

回答

2

bind_result()不會刪除需要調用fetch()命令。您的代碼應該是這個樣子:

$stmt = $con->prepare($sql); 
$stmt->bind_param("s", $my_value); 
$stmt->execute(); 
$stmt->store_result(); 
$stmt->bind_result($num); 
$stmt->fetch(); 
$stmt->close(); 
echo "Num: [" . $num . "]"; 

對更多的信息,請參閱docs

+0

這是一件非常基本的事情!謝謝,我認爲我需要暫停:) – Timmy