php - 无法在准备好的 mysql 查询中使用 MAX()

标签 php mysql prepared-statement

我使用的是最新版本的 PHP 5 和 MySQL。

查询如下:

$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:[]

最佳答案

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了解更多信息。

关于php - 无法在准备好的 mysql 查询中使用 MAX(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45442438/

相关文章:

php - 使用 PHP 的基于 Cron 的 Google Analytics API 请求

php - 如何区分要抛出,授权或验证的错误?

php - 复选框值带有单个值

java - Java 中 'v_plateno' 中的未知列 'where clause'

php - UPDATE Multiple ID 中的 PDO 准备语句

php - 使用 PHP 从 1.3GB 文本文件中提取文本的最佳方法?

php - 如何让 php 页面返回 503 错误(或任何非 200 错误)

mysql - EF6 迁移 Mysql 连接器 6.9 在收集 latin1_swedish_ci 时成功,但在 utf8 或 utf8mb4 时出错

MySQL 模式匹配和替换

php - 从 MySQLi 字段获取类型规范字符