我正在使用mysqli
编写我认为是相当基本的准备好的状态。语句如下所示(其中$connection
是MySQLI
实例):
$venue = $_POST['venue'];
$description = $_POST['description'];
if (isset($_POST['add'])) {
$query = $connection->prepare("INSERT INTO events (date, time, showTime, venue, description) VALUES ('$date', '$time', '$showtime', '?', '?')");
$query->bind_param('ss', $venue, $description);
}
elseif (isset($_POST['edit'])) {
$query = $connection->prepare("UPDATE events SET date = '$date', time = '$time', showTime = '$showtime', venue = '?', description = '?' WHERE id ='$id'");
$query->bind_param('ss', $venue, $description);
}
$query->execute();
这将失败,在日志中出现以下情况:变量数与准备好的语句
中的参数数不匹配。
在没有详细说明的情况下,请不要将“直接值”与值持有者(?)在你的查询中。相反,一次将它们全部绑定。尝试以下操作:
$query = $connection->prepare("INSERT INTO events (date, time, showTime, venue, description) VALUES (?, ?, ?, ?, ?)");
$query->bind_param('sssss', $date, $time, $showtime, $venue, $description);
我得到这个错误:
我在prepare语句和bind_param中有正确的数字(7),所以我不知道为什么会发生这种情况。
我不明白为什么我会得到这样的错误:“prepared Statement中的变量数不匹配参数数”。 我的代码如下所示:
首先,我知道这是一个重复的问题,我问的是同样的问题。但是我已经阅读了所有与相同问题相关联的解决方案,但是当我遵循建议的解决方案时,它将触发更多的警告出现。这就是我的代码 获取 只为得到这些警告; 警告:mysqli_stmt::bind_param():第119行C:\xampp\htdocs\gsd\emergency\records.php中的变量数与准备好的语句中的参数数不匹配 警告:mys
问题内容: 我一直在尝试使用准备好的语句在PHP中编写登录表单,但是每次尝试登录时,都会出现以下错误: mysqli_stmt :: bind_result():绑定变量的数量与准备好的语句中的字段数量不匹配 这是我的代码: 有人可以告诉我为什么会这样吗? 问题答案: 如果这确实是您的代码,则可能是$ _POST [“ name”]或$ _POST [“ password”]是一个数组,因此bin