PHP、Ajax、Java表更新表单

PHP、Ajax、Java表更新表单,php,mysql,pdo,Php,Mysql,Pdo,我曾尝试为我的应用程序更改、重新定位和重拨这几行代码,但是,同样的错误不断出现。这是对数据库子句的更新,它正确地提取行信息,将它们输入表单进行编辑,并正确地显示。但是,当尝试更新时,它会抛出此错误 错误代码 PHP警告:PDOStatement::execute:SQLSTATE[HY093]:无效参数编号:第49行中未定义参数 似乎很容易找到,我明白它的意思。这是最重要的 您正在添加预搜索查询中的更多参数。具体而言,该行: ':cust_tx' => $_POST["cust_tx"],

我曾尝试为我的应用程序更改、重新定位和重拨这几行代码,但是,同样的错误不断出现。这是对数据库子句的更新,它正确地提取行信息,将它们输入表单进行编辑,并正确地显示。但是,当尝试更新时,它会抛出此错误

错误代码

PHP警告:PDOStatement::execute:SQLSTATE[HY093]:无效参数编号:第49行中未定义参数


似乎很容易找到,我明白它的意思。这是最重要的 您正在添加预搜索查询中的更多参数。具体而言,该行:

':cust_tx' => $_POST["cust_tx"],
预搜索查询中不存在。因此,从执行查询的位置删除这一行,或者将其添加到预筛选查询中


除此之外,正如Magnus Eriksson所指出的,您还需要添加:id-参数,该参数在prebeared语句中定义。

您的更新SQL中没有任何cust_tx,您的执行数组中也没有任何:id。除非你的问题是关于这些语言的。您可能认为这将导致更快的答案,但事实是,这更有可能导致更快的结束。您应该正确缩进代码。这将有助于您和我们遵循流程,发现潜在的问题/错误。永远不要发布您的网站,尤其是在开发过程中,并且不要忘记验证用户。总有一天会有人试图破解它。还有一个问题。OP在查询中有参数:id,但没有在execute中添加该参数。
if($_POST["operation"] == "Edit")
{

 $statement = $connection->prepare(
"UPDATE customer 
 SET cust_firstname = :cust_firstname, cust_lastname = :cust_lastname, 
 cust_address = :cust_address, cust_city = :cust_city, cust_state = 
 :cust_state, cust_zipcode = :cust_zipcode, cust_email = :cust_email 
 WHERE id = :id
 "
 );
 $result = $statement->execute(
  array(
 ':cust_firstname' => $_POST["cust_firstname"],
':cust_lastname' => $_POST["cust_lastname"],
':cust_address' => $_POST["cust_address"],
':cust_city' => $_POST["cust_city"],
':cust_state' => $_POST["cust_state"],
':cust_zipcode' => $_POST["cust_zipcode"],
':cust_tx' => $_POST["cust_tx"],
':cust_email' => $_POST["cust_email"],
)
);  **<----- ERROR LINE**
if(!empty($result))
{
 echo 'Data Updated';
}
else {
 echo 'Error: Data not updated';
 }

 }
 }

 ?>
':cust_tx' => $_POST["cust_tx"],