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

当存在多个参数时,php无法识别查询中的绑定参数,php,mysqli,Php,Mysqli,因此,我无法找出问题所在,就好像我只绑定了其中一个参数一样,它是有效的。如果两者都存在,那么它会给我 警告:mysqli_stmt::bind_param():变量的数量与prepared语句`中的参数数量不匹配,并且不生成任何输出 它似乎无法识别where子句中的第二个参数。如果有人能帮我,谢谢!如果我替换?在phpMyAdmin中运行。CNIC应该是一个post值,并且为测试目的而硬编码 $sql = "SELECT c.cnic, c.name, c.cell_phone, c.

因此,我无法找出问题所在,就好像我只绑定了其中一个参数一样,它是有效的。如果两者都存在,那么它会给我

警告:mysqli_stmt::bind_param():变量的数量与prepared语句`中的参数数量不匹配,并且不生成任何输出

它似乎无法识别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']);

旁注:如果您正在构建新的东西,请尝试切换到PDO以节省大量的编码和麻烦;-)