我试图为我的应用程序更改,重定位和重新编写这几行,但是,同样的错误不断弹出。它是对数据库子句的更新,它正确地提取行信息,将它们输入到表单中进行编辑和正确显示。但是,在尝试更新它时会抛出此错误。
错误代码
PHP警告:PDOStatement :: execute():SQLSTATE [HY093]:参数号无效:参数未在第49行定义
似乎很容易找到,我理解它的含义。它是); (我在第二组代码中写的< -------错误行。)正在关闭执行功能。从新输入,一切正常,没有问题,没有显示错误,但是,这不起作用。我甚至回到了代码的创始人那里,看看他们是否可以提供帮助,但没有答案。
请帮忙,这是我为了完成这个而坚持的最后一部分。
主页代码(据我所知,工作正常。信息被拉,并且正确)
$(document).on('click', '.update', function(){
var id = $(this).attr("id");
$.ajax({
url:"fetch_single.php",
method:"POST",
data:{id:id},
dataType:"json",
success:function(data)
{
$('#userModal').modal('show');
$('#cust_firstname').val(data.cust_firstname);
$('#cust_lastname').val(data.cust_lastname);
$('#cust_address').val(data.cust_address);
$('#cust_city').val(data.cust_city);
$('#cust_state').val(data.cust_state);
$('#cust_zipcode').val(data.cust_zipcode);
$('#cust_tx').val(data.cust_tx);
$('#cust_email').val(data.cust_email);
$('.modal-title').text("Edit User");
$('#id').val(id);
$('#action').val("Edit");
$('#operation').val("Edit");
}
})
});
这里出现了我的错误
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';
}
}
}
?>
错误代码
PHP警告:PDOStatement :: execute():SQLSTATE [HY093]:参数号无效:参数未在第49行的/home/r3home/public_html/mpitsolutions.info/db/customer/insert.php中定义
答案 0 :(得分:1)
您正在预先添加的查询中添加更多参数。特别是这一行:
':cust_tx' => $_POST["cust_tx"],
在prepeard查询中不存在。因此,从执行查询的位置删除此行,或将cust_tx添加到预先编写的查询中。
除此之外,正如Magnus Eriksson指出的那样,你还需要添加:id - 参数,它在prepeared语句中定义。