WordPress和PHP |检查数据库中是否存在行,如果是,则不插入数据

问题描述 投票:1回答:2

我是WordPress和SQL的新手。我有一个联系表单,我希望将数据提交到我的WordPress数据库,但前提是尚未输入已输入的数据。

这是我到目前为止,它提交表单时将数据发送到我的数据库。

if(isset($_POST['contact_us'])) {
    $invalidContact = "<h5 class='invalidBooking'> Nope try again</h5>";
    $successContact = "<h5 class='invalidBooking'> Message Sent!</h5>";
    $table_name='contact_table';
    global $wpdb;

    $contact_name = esc_attr($_POST['contact_name']);
    $contact_email = sanitize_email($_POST['contact_email']);
    $subject = esc_attr($_POST['subject']);
    $message = esc_attr($_POST['message']);

    $error= array();


    if (empty($contact_name)) {
        $error['name_invalid']= "Name required";
    }
    if (empty($contact_email)){
        $error['email_invaild']= "Email required";
    }

    // Im guessing some code here to check if row exists in database

    if (count($error) >= 1) {
        echo $invalid;
    }
    if (count($error) == 0) {
        $data_array=array(
            'Contact_Name'=>$contact_name,
            'Contact_Email'=> $contact_email,
            'Contact_Subject'=> $subject,
            'Contact_Message'=> $message,
        );

        $rowResult=$wpdb->insert($table_name, $data_array,$format=NULL);
        echo $successContact;
    } 

}
mysql wordpress
2个回答
0
投票

使用此代码获取数据

$query = "SELECT * FROM {$wpdb->prefix}table WHERE column = 1";
echo $query;
$results = $wpdb->get_results($query);

然后你知道该怎么做


0
投票

您可以尝试此代码

if (count($error) == 0) {
    $data_array=array(
        'Contact_Name'=>$contact_name,
        'Contact_Email'=> $contact_email,
        'Contact_Subject'=> $subject,
        'Contact_Message'=> $message,
    );

 $query = "SELECT * FROM $table_name WHERE 'Contact_Name'= '$contact_name' AND 'Contact_Email' = '$contact_email' AND 'Contact_Subject' = '$subject' AND 'Contact_Message' = '$message'";
 $query_results = $wpdb->get_results($query);
 if(count($query_results) == 0) {
    $rowResult=$wpdb->insert($table_name, $data_array,$format=NULL);
 }
}

希望这对你有用。

© www.soinside.com 2019 - 2024. All rights reserved.