php 当存在多个参数时无法识别查询中的绑定参数

php not recognizing bind parameter in query when there are more than one parameters present

所以我无法弄清楚问题出在哪里,就好像我只绑定了一个参数一样,它起作用了。如果两者都存在,那么它会给我

Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement`and produces no output.

好像不认识where子句中的第二个参数。如果有人可以帮助我解决这个问题,谢谢!如果我替换 ?和 phpMyAdmin 中的 运行。 CNIC 应该是一个 post 值,并且为了测试目的进行了硬编码。

$sql = "SELECT c.cnic, c.name, c.cell_phone, c.address 
        FROM cheetay_customers as c 
            INNER JOIN policies as p ON c.CNIC = p.cnic WHERE `c`.`CNIC`= ? 
                AND `p`.`partnerName`= ?";

if($stmt = $con->prepare($sql)) { 
    $cnic = 1267890;
    $stmt->bind_param("i", $cnic);
    $stmt->bind_param("s", $_SESSION['access']);

    $stmt->execute();
    $stmt->bind_result($cnic, $name,$cell_phone,$address);

    while ($stmt->fetch()) {
        echo "CNIC: {$cnic}, Name: {$name}, Cell Phone: {$cell_phone}, Address: {$address}";
    }

} else {
    $error = $con->errno . ' ' . $con->error;
    echo $error; 
}

调用bind_param一次,一次性传递所有参数

 $stmt->bind_param("is", $cnic, $_SESSION['access']);