gpt4 book ai didi

php - 即使检测是否存在,也会插入多个数据库?

转载 作者:行者123 更新时间:2023-11-29 19:15:14 26 4
gpt4 key购买 nike

我有一个 php 脚本,用于监听 $_POST 输入,并插入到我的表中,然后可以在我的 Wordpress 插件中读取该表并向管理员显示。考虑到人们多次提交表单的方式,我使用表单中发送的唯一发票编号检查数据库以查看该条目是否已存在。

我的代码是:

global $wpdb; 
$submits_table = $wpdb->prefix . 'submits_table';
$invoice = $_POST['invoice'];
$exists = $wpdb->get_row( "SELECT * FROM $submits_table WHERE `invoice` = $invoice" );
if ( $exists == NULL ) {

$wpdb->insert(
$submits_table,
array(
'first_name' => $_POST['first_name'],
'ip_address' => $_POST['ipaddress'],
'invoice' => $invoice
),
array(
'%s',
'%s',
'%s'
)
);

}

问题是每一次提交都会被插入,无论发票号码是否已经存在。我已经在管理面板的不同页面上尝试了相同的代码,并且工作正常;只有当它设置为前端提交的监听器时才无法正常工作。

我要把头发扯下来。关于原因的任何想法get_row()每次在前端返回 NULL 而不是在管理员处?

编辑:invoice是字母数字,所以它是 varchar .

最佳答案

wpdb::get_row

Return

(array|object|null|void) Database query result in format specified by $output or null on failure

所以,这不是检查 null 是否存在的正确方法

相反,检查返回结果的计数:

if (count($exists) > 0)

关于php - 即使检测是否存在,也会插入多个数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42763695/

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