gpt4 book ai didi

php - 我正在尝试使用更新查询从 PHP 更新 MySQL 中的一行,其中某些参数需要使用两次

转载 作者:行者123 更新时间:2023-11-29 10:35:57 25 4
gpt4 key购买 nike

我正在尝试更新数据库中的一行,其中查询的 where 子句中使用了电子邮件中的用户 IP 地址和电子邮件地址。

public function insert_user_captured_data($userip, $didIclickemaillink, $emailclickedfrom, $fname, $lname, $emailentered, $submitclicked){
$sql = "UPDATE testdata
SET useripclicked = ?,
emailclickedfromhere = ?,
userlinkclicked = ?,
userfnameentered = ?,
userlnameentered = ?,
useremailentered = ?,
usersubmittedform = ?,
timestamp = CURRENT_TIMESTAMP
WHERE useripclicked = ? AND emailclickedfromwhere = ?";
$stmnt = $this->dbConnection->prepare($sql);
$stmnt->bind_param("ssisssiss",$userip,$emailclickedfrom,$didIclickemaillink,$fname,$lname,$emailentered,$submitclicked,$userip,$emailclickedfrom);
$insRes = $stmnt->execute();
if (!$insRes) {
throw new Exception("Error Processing Request: Row Not inserted $stmnt->error", 1);
}
}

我在初始插入中成功,但想要更新第二遍以在用户填写联系表单后填写行。我收到以下错误(在代码标记中突出显示)

Fatal error: Uncaught Error: Call to a member function bind_param() on boolean in C:\wamp64\www\example.com\assets\php\database.php:73 Stack trace: #0 C:\wamp64\www\example.com\assets\php\thankyou.php(37): Database->insert_user_captured_data('10.0.2.15', 'jfender@example.com', 'Jesse', 'Fender', 'jfender@example.com', 1) #1 {main} thrown in C:\wamp64\www\example.com\assets\php\database.php on line 73

另外删除了一些实际上不需要更新的重复值,结果如下:

public function insert_user_captured_data($userip, $emailclickedfrom, $fname, $lname, $emailentered, $submitclicked){
$sql = "UPDATE testdata
SET userfnameentered = ?,
userlnameentered = ?,
useremailentered = ?,
usersubmittedform = ?,
timestamp = CURRENT_TIMESTAMP
WHERE useripclicked = ? AND emailclickedfromwhere = ?";
$stmnt = $this->dbConnection->prepare($sql);
$stmnt->bind_param("sssiss",$fname,$lname,$emailentered,$submitclicked,$userip,$emailclickedfrom);
$insRes = $stmnt->execute();
if (!$insRes) {
throw new Exception("Error Processing Request: Row Not inserted $stmnt->error", 1);
}
}

但是我遇到了同样的错误,并且打印出错误和堆栈跟踪根本没有帮助......

我做错了什么?我目前使用 PHP 7.1.9、MySQL 5.7.19 和 Apache 2.4.17 在 Windows 10 系统上,我使用 OOP mysqli,并且在我的表中插入得很好。

最佳答案

我很抱歉大家...我发现了错误...它发生在准备()中,这是由于我在其中一个列名称中输入了错误的字母。这是更正后的代码::

public function insert_user_captured_data($userip, $emailclickedfrom, $fname, $lname, $emailentered, $submitclicked){
$sql = "UPDATE testdata
SET userfnameentered = ?,
userlnameentered = ?,
useremailentered = ?,
usersubmittedform = ?,
timestamp = CURRENT_TIMESTAMP
WHERE useripclicked = ? AND emailclickedfromhere = ?";
$stmnt = $this->dbConnection->prepare($sql);
$stmnt->bind_param("sssiss",$fname,$lname,$emailentered,$submitclicked,$userip,$emailclickedfrom);
$insRes = $stmnt->execute();
if (!$insRes) {
throw new Exception("Error Processing Request: Row Not inserted $stmnt->error", 1);
}
}

杰西·芬德

关于php - 我正在尝试使用更新查询从 PHP 更新 MySQL 中的一行,其中某些参数需要使用两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46426887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com