我将数据插入到付款表中,其中Ref列必须是唯一的。在下面的代码中,$ref=$_POST['PAYMENT_ID'];
我总是在每个帖子中插入一个新的ref no和其他列值。有时它会发布重复参考号。我试图保持裁判没有独特性。
为此,我编写了以下代码。我想要做的是,如果现有的Ref Column值与新的$ref=$_POST['PAYMENT_ID']
值不匹配,那么它将插入数据。但它不工作并插入ref no no匹配新参考号。
我该怎么做?
<?php
$ref=$_POST['PAYMENT_ID'];
$pending = "Pending";
$method = "Uploaded funds";
$today = date('Y-m-d');
$time=$_POST['TIMESTAMPGMT'];
$type = "Pm";
$table_payments = $wpdb->prefix . "payments";
$check=$wpdb->get_results("SELECT Ref FROM $table_payments");
$checkrows=mysqli_num_rows($check);
if ($checkrows!=$ref) {
if($hash2==$_POST['V2_HASH']){
$wpdb->insert( $table_payments, array(
'Method' => $method,
'Today' => $today,
'Time' => $time,
'Ref' => $ref,
'Batch' => $batch,
'Type' => $type,
'Status' => $pending,
'User' => $me
));}}
?>
答案 0 :(得分:1)
问题是,$Ref
是用户提交的值,$checkrows
保存$table_payments
表中的总行数。这就是条件if ($checkrows!=$ref) { ...
失败的原因。
您必须按以下方式更改SQL查询和后续代码,
// your code
$table_payments = $wpdb->prefix . "payments";
$check=$wpdb->get_results("SELECT * FROM $table_payments WHERE Ref = '$ref'");
$checkrows=$wpdb->num_rows;
if ($checkrows == 0) {
// do INSERT operation
}
此外,您应该将表格的Ref
列唯一