php - 查询正常工作但在准备好的语句中不工作

标签 php mysql sql mysqli prepared-statement

我有以下准备语句的代码

// Get the data about the file
$stmt = $mysqli->prepare("SELECT * FROM file WHERE generated_name = ?");
$stmt->bind_param('s', $generated_name);
$stmt->execute();
if($stmt->num_rows == 0) return 'Error';

上面的代码不工作,它总是返回一个错误,即使它不应该 affected_rows 也奇怪地返回 -1。但是,如果我离开准备好的方法并进行普通查询..它会完美地工作

// Get the data about the file
$result = $mysqli->query("SELECT * FROM file WHERE generated_name = '$generated_name'");
if($result->num_rows == 0) return 'Error';

此代码运行完美,不会返回错误。我不知道出了什么问题。你能找出错误吗?

最佳答案

执行后可以使用store_result

$stmt->store_result();
$rows= $stmt->num_rows;
if($rows > 0)...

关于php - 查询正常工作但在准备好的语句中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24581738/

相关文章:

php - mysql查询从两个表中选择不同的值以及两个表中总和值的计数

php - mysql/php 如果值为空则忽略设置

mysql - 在 MySQL 中查看授权

mysql - 如何执行此连接查询?

sql - PostgreSQL 中的外键匹配

php - 如何将 AJAX 处理合并到 PHP/MySQL While 循环(用于异步编辑)中?

mysql - 这个数据库看起来不错吗?我正常化了吗?

sql - 如果在所有类别中,我如何获得特定产品?

mysql - 如何在mysql中选择每个客户的最后订单日期

php - JSON 保存在数据库中并使用 JQuery 加载