2017-08-01 43 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