Php ERRROR PDOStatement::bindParam()要求参数3为长字符串

Php ERRROR PDOStatement::bindParam()要求参数3为长字符串,php,mysqli,pdo,Php,Mysqli,Pdo,希望这是我的一个快速而明显的错误,我浏览了一遍,但找不到与我的问题直接相关的问题,所以请原谅我打开了一个应该被认为是相当简单的问题,但在使用mysql多年之后,PDO开关并不容易实现 我想做什么 只需将输入的表单数据插入表的新行即可 代码 HTML <form name="animals" id="animals" method="post"> <label for="animalType"

希望这是我的一个快速而明显的错误,我浏览了一遍,但找不到与我的问题直接相关的问题,所以请原谅我打开了一个应该被认为是相当简单的问题,但在使用mysql多年之后,PDO开关并不容易实现

我想做什么 只需将输入的表单数据插入表的新行即可

代码 HTML

<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);