无法通过引用传递参数2 - Mysql Prepare语句

问题描述 投票:-4回答:1

我有一个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语句中执行select语句绑定ID。

谢谢

php mysql select
1个回答
1
投票

错误在这一行:

$stmt->bind_param("i", 'DOC48599');

您不能将字符串'DOC48599'直接传递为参数,您需要将其存储在变量中,然后将变量传递给bind_param方法。

您还必须注意传递的参数的类型:如果您的参数是字符串,则需要使用“s”而不是“i”。看看here

$myParameter = 'DOC48599';
$stmt->bind_param("s", $myParameter);
© www.soinside.com 2019 - 2024. All rights reserved.