php - 无法通过引用传递参数 2 - Mysql Prepare 语句
问题描述
我有一个 PHP 循环。
在循环中,我将有一个 Select 语句。
我收到错误
致命错误:未捕获错误:无法通过引用传递参数 2
我不知道我做错了什么。
这是我的声明
<?php
$query = "SELECT customer.id AS customerid,customer.doc,
order.id AS orderid ,order.doc FROM customer
Inner Join order ON customer.doc = order.doc
Where customer.doc= ?";
if ($stmt = $mysqli->prepare($query)) {
$stmt->bind_param("i", 'DOC48599');
/* execute query */
$stmt->execute();
/* store result */
$stmt->store_result();
printf("Number of rows: %d.\n", $stmt->num_rows);
/* close statement */
$stmt->close();
}
/* close connection */
$mysqli->close();
?>
我的第二个问题是在 Loop 中使用 Select 语句的最佳做法是什么。
所以对于每个循环,它都在经历;它将获得一个 ID 并在 select 语句中执行绑定 ID 的 select 语句。
谢谢
解决方案
错误在这一行:
$stmt->bind_param("i", 'DOC48599');
您不能直接将字符串“DOC48599”作为参数传递值,您需要将其存储在变量中,然后将变量传递给bind_param
方法。
您还必须注意传递的参数的类型:如果您的参数是字符串,则需要使用“s”而不是“i”。看看这里
$myParameter = 'DOC48599';
$stmt->bind_param("s", $myParameter);
推荐阅读
- javascript - 如何将状态传递给操作以获取 API?
- reactjs - 运行 npm 测试时 aws-amplify style.css 出错
- typescript - 从 onCreate 的 Firestore snap.data 检索数据但有未定义的错误
- c - C中嵌套结构的指针类型
- docker - 如何确保 Airflow 中的所有工作人员(容器)具有相同的环境?
- bash - 当 gofmt 建议更改时,让 gofmt 以退出状态 1 退出?
- vue.js - 如何将 D3 组件附加到另一个 vue 文件中的 div
- eclipse - 每次都有 java.lang.NullPointerException
- node.js - ng-selected 不起作用,但将选项修改为 selected="selected",使用 ng-repeat
- css - SCSS/CSS 不使用 webpack 加载