gpt4 book ai didi

php - 使用 $wpdb->insert 将错误数据插入数据库

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

大家好!

我目前有一个代码可以从名为 wp_refundrequests 的自定义表格中获取数据,并将它们作为表格打印到页面上。在页面上,管理员可以通过按每个订单旁边的按钮来接受或拒绝请求。拒绝请求只是从表中删除请求,但接受应该从当前表中删除它并将信息插入下一个名为“已接受请求”的表。

wp_refundrequests 表包含他们想要退款的客户订单。

获取信息并打印出来的代码:

global $wpdb;
$requests = $wpdb->get_results("SELECT * FROM wp_refundrequests", ARRAY_A);

foreach ($requests as $row) {
echo "<div class='requests'>" . "<li class='refunds'>" . "Palauttajan nimi: ".
$row['customer_name'] . "</br>" ."Palautettavat tuotteet: ".$row['product_name']."<br> "."Määrä: ".
$row['product_qty'] . " "
. "<br>Kommentti: " . $row['comment'] . "<br> " . "Hinta: " . $row['refund_total'] . "€ " .
"<br>" . "Päivämäärä: " . $row['request_date'] . " " .
"<a class='right' href='admin-page?deleteid=" . $row['request_id'] . "'>Deny</a></li>" .
"<li class='refundaccepts'><a href='admin-page?acceptid=" . $row['request_id']
. "'>Accept</a></li>" . "</div>";
$_SESSION['custname'] = $row['customer_name'];
$_SESSION['prodname'] = $row['product_name'];
}

使用我当前的代码,“接受”按钮将其删除,并将信息插入到新表中,但插入的信息是错误的。它似乎想要将已插入到 wp_refundrequests 表中的最新数据插入到 wp_acceptedrequests,或者它保留来自最新退款请求的数据并尝试插入该数据,因为例如在这里看到(抱歉还有一些芬兰语):

Table

如果我点击上面那个旧按钮上的“接受”按钮,查询仍然会像这样插入它: Insert query

因此,它基本上是从最新的 refund_request 插入中插入信息,然后插入该信息而不是所选的信息。但是,已选择的那个仍然会从表中删除。

这是当用户点击“接受”时触发的代码

$custname = $_SESSION['custname'];
$prodname = $_SESSION['prodname'];
if(isset($_GET['acceptid'])) {
$accept = $_GET['acceptid'];
/* Query to do whatever here */
$wpdb->print_error();
$wpdb->insert("wp_acceptedrequests", [
"customer_name" => "$custname",
"name_product" => "$prodname",
"date" => date("Y/m/d/G:i:sa") ,
]);
$wpdb->print_error();
$wpdb->query("DELETE FROM wp_refundrequests WHERE request_id = $accept");
}

我不得不说我不知道​​为什么它不想插入选定的请求,如果有什么令人困惑的地方请发表评论,然后我会尝试将其清除。

提前致谢!

最佳答案

您在 foreach 循环中重新定义了 $_SESSION,因此在 foreach 的末尾它将等于最后一个,将每一行参数传递给它是这样的接受链接

 "<li class='refundaccepts'><a href='admin-page?acceptid=" . $row['request_id']."&custname=".$row['customer_name']."&prodname=".$row['product_name']."'>Accept</a></li></div>";

然后像获取$accept-ID一样调用它

if(isset($_GET['acceptid'])) {
$accept = $_GET['acceptid'];
$custname = $_GET['custname'];
$prodname = $_GET['prodname'];

注意:我用的是我的手机,所以要确定它是否是代码的 href 部分的语法错误

关于php - 使用 $wpdb->insert 将错误数据插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52662655/

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