首页  >  文章  >  后端开发  >  为什么使用准备好的语句在 MySQL 中收到“变量数量与参数数量不匹配”错误?

为什么使用准备好的语句在 MySQL 中收到“变量数量与参数数量不匹配”错误?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-22 10:57:30717浏览

Why Do I Receive

问题:为什么我在 MySQL 中收到“bind_param:变量数量与参数数量不匹配”?

在使用 MySQL 的 PHP 脚本中,您面临着执行准备好的语句时出现问题并收到警告“变量数量与准备好的语句中的参数数量不匹配”。当准备好的语句中问号的数量与bind_param()方法中绑定的变量的数量不一致时,就会发生这种情况。

解决方案:

要解决此问题,请确保准备好的语句中问号的数量与传递给bind_param()的变量数量相匹配。下面是一个更正后的代码片段示例:

<code class="php">$stmt = $mysqli->prepare("SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = ? ORDER by model");
$stmt->bind_param('is', $year, $make);
$stmt->execute();</code>

在此示例中,准备好的语句包含两个问号,bind_param() 方法绑定两个变量 $year 和 $make。 'is' 中的第一个字母指定第一个参数的类型(整数),第二个字母指定第二个参数的类型(字符串)。

记住,在准备语句时,必须替换每个带问号且不带引号的变量。引号内的问号不会被解释为占位符。

以上是为什么使用准备好的语句在 MySQL 中收到“变量数量与参数数量不匹配”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn