Php ERRROR PDOStatement::bindParam()要求参数3为长字符串
希望这是我的一个快速而明显的错误,我浏览了一遍,但找不到与我的问题直接相关的问题,所以请原谅我打开了一个应该被认为是相当简单的问题,但在使用mysql多年之后,PDO开关并不容易实现 我想做什么 只需将输入的表单数据插入表的新行即可 代码 HTMLPhp ERRROR PDOStatement::bindParam()要求参数3为长字符串,php,mysqli,pdo,Php,Mysqli,Pdo,希望这是我的一个快速而明显的错误,我浏览了一遍,但找不到与我的问题直接相关的问题,所以请原谅我打开了一个应该被认为是相当简单的问题,但在使用mysql多年之后,PDO开关并不容易实现 我想做什么 只需将输入的表单数据插入表的新行即可 代码 HTML <form name="animals" id="animals" method="post"> <label for="animalType"
<form name="animals" id="animals" method="post">
<label for="animalType">Animal Type: </label>
<input type="text" required="required" name="animalType" />
<br />
<br />
<label for="animalName">Animal Name:</label>
<input type="text" required="required" name="animalName" />
<br />
<button type="submit" name="submit">Add</button>
</form>
错误:
PDOStatement::bindParam()要求参数3为长字符串
致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[HY093]:无效参数编号:未绑定任何参数”
可能的错误原因?
当我输入时,Dreamweaver会打开一个帮助函数,就像它经常做的那样(paramNo,Param,ParamType)
我应该在这里指定绑定2个参数吗?(我试过了,但错误和上面一样。)
表格
非常感谢更换
$statement = $db->prepare($sql);
$statement->bindParam("ss", $type, $name);
与
有关更多信息,请参阅手册PDO的
bindParam
没有ss
,并且是mysqli_uuuu准备好的语句语法。您没有阅读手册吗???@Fred ii-很抱歉,当我删除时,我得到了错误致命错误:未捕获异常'PDOException',消息'SQLSTATE[HY093]:无效参数编号:绑定变量的数量与令牌的数量不匹配
,我们有它。问题解决了。使用bind_param
您就可以开始了;-)更好的地方:关于准备语句和错误检查的手册@NareshKumar鉴于OP从一开始就在使用未知的API,我的评论是相关的。当我发现他在用什么时,我删除了我的评论。因此,如果我从一开始就知道,并且确切地知道我们要对付的是哪种动物,我就不会发表这些评论了。我觉得从一开始我就没有错。
$statement = $db->prepare($sql);
$statement->bindParam("ss", $type, $name);
$statement = $db->prepare($sql);
$statement->bindParam(1, $type, PDO::PARAM_STR);
$statement->bindParam(2, $name, PDO::PARAM_STR);