Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 警告:PDOStatement::execute()[PDOStatement.execute]:SQLSTATE[HY093]_Php_Pdo - Fatal编程技术网

Php 警告:PDOStatement::execute()[PDOStatement.execute]:SQLSTATE[HY093]

Php 警告:PDOStatement::execute()[PDOStatement.execute]:SQLSTATE[HY093],php,pdo,Php,Pdo,我使用PDO在PHP中进行了以下查询: $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->prepar

我使用PDO在PHP中进行了以下查询:

$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
我看不出警告的原因,我认为这两个语句都有三个变量。

试试这个

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

仔细检查你的代码是否有拼写错误。如果SQL中的
:参数
execute()
@Barmar中的数组键不匹配,就会出现此错误,我从上一个问题中了解到,可能是我的代码中有拼写错误,但在这种情况下,我无法找到它们。我已经检查了表单、查询和数组键,没有发现任何打字错误。但我现在会再检查一遍。无论如何,谢谢你。lone}是一个解析错误。由于代码没有作为解析错误而失败,这意味着partner{(和条件语句)不在问题中。在遇到错误时,
$sql
可能不是问题中的insert语句,或者类似的“其他人怎么会看到?”错误-因为问题中的代码不足以解释问题,并且具有误导性。-1.可能重复我尝试了您的建议,但我得到了相同的错误。我也仅使用一个参数进行了检查,显示了相同的错误。谢谢。当单击“提交”按钮后,警告不会消失,表单数据为在数据库中搜索。是否有删除警告消息的建议?@AD7six,你是对的。我已经检查了答案,发现了问题,是prepare语句之前的}。感谢you@AD7six我没有得到u@AD7six,现在一切都好了,不用再往前走了。没有发现打字错误是我的错。我投了反对票,现在已经足够了。谢谢你的时间和努力。