【发布时间】:2014-05-31 17:31:20
【问题描述】:
我在 PHP 中使用 PDO 进行了以下查询:
$form = $_POST;
$alias = $form[ 'alias' ];
$nombre = $form[ 'nombre' ];
$pass = $form[ 'pass' ];
$sql = "INSERT INTO tbmeseros ( alias_mesero, nombre_mesero, pass_mesero ) VALUES (:alias,:nombre,:pass)";
}
$query = $dbh->prepare( $sql );
$query->execute(array(':alias'=>$alias,':nombre'=>$nombre,':pass'=>$pass) );//THIS IS LINE 92
但我收到警告:
Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in /.../NuevoAdminMeseros.php on line 92
我没有看到警告的原因,我认为这两个语句都有三个变量。
【问题讨论】:
-
仔细检查您的代码是否有拼写错误。如果 SQL 中的
:parameters与execute()中的数组键不匹配,则会出现此错误。 -
@Barmar,我从上一个问题中了解到,我的代码中可能存在拼写错误,但在这种情况下我无法找到它们。我检查了表单、查询和数组键,我没有发现任何错字。但我现在会再次检查。无论如何谢谢你。
-
单独的 } 是一个解析错误。由于代码没有作为解析错误失败,这意味着合作伙伴 { (和条件语句)不在问题中。似乎
$sql在遇到错误时不是问题中的插入语句,或者类似的“其他人怎么能看到?”错误 - 因为问题中的代码不足以解释问题,并且具有误导性。 -1.