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']);
所以我无法弄清楚问题出在哪里,就好像我只绑定了一个参数一样,它起作用了。如果两者都存在,那么它会给我
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']);