首页 > 数据库 > mysql教程 > MySQLi 绑定参数错误:为什么我的类型字符数与占位符不匹配?

MySQLi 绑定参数错误:为什么我的类型字符数与占位符不匹配?

Patricia Arquette
发布: 2024-11-29 10:05:13
原创
281 人浏览过

MySQLi Bind Param Error: Why Does My Number of Type Characters Mismatch My Placeholders?

绑定参数错误:数字不匹配

在 MySQLi 准备好的语句中,类型字符(例如,字符串中的“s”)的数量bind_param 方法必须与 SQL 中的占位符数量(例如“?”)匹配

问题摘要

您收到错误,因为代码中的 bind_param 调用与准备好的语句中的占位符数量不匹配:

$stmt->bind_param("s,s,s,s,s,s,s,...", $project_name, $status, ...);
登录后复制

这可能是由于表单输入的数量 (65) 与占位符的数量不匹配

正确格式

bind_param 的正确格式如下:

$stmt->bind_param("type_characters", $variable1, $variable2, ...);
登录后复制

其中“type_characters”是包含一个字符的字符串查询中的每个占位符,指示数据的类型

计算类型字符

为避免不匹配,建议手动或使用正则表达式计算占位符的数量。在您的情况下,您应该确认准备好的语句包含 65 个占位符。

示例

对于具有 65 个占位符的修改后的准备好的语句,正确的 bind_param 调用将是be:

$stmt->bind_param("sssssssssssssssssssssssssssssssssssssssssssssssssssssssss", $project_name, $status, ...);
登录后复制

提示

为了帮助确保正确绑定,请考虑使用以下方法来计算 SQL 查询中占位符的数量:

function countPlaceholders($sql) {
  return substr_count($sql, '?');
}
登录后复制

以上是MySQLi 绑定参数错误:为什么我的类型字符数与占位符不匹配?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板