我有4個變量:
$a = $_POST['a']; //1
$b = $_POST['b']; //
$c = $_POST['c']; //
$d = $_POST['d']; // 5
是捕獲所有的值從輸入當前MySQL的工作:
$wpdb->query("DELETE FROM $wpdb->postmeta WHERE meta_key IN(rate1,rate2,rate3,rate4) AND post_id=".$_POST['postid']);
$wpdb->query("INSERT INTO $wpdb->postmeta (post_id,meta_key,meta_value) VALUES ($_POST['postid'],rate1,$a),($_POST['postid'],rate2,$b),($_POST['postid'],rate3,$c),($_POST['postid'],rate4,$d) ");
反正是有減少的查詢,只有當$ _POST不爲空時插入/刪除。目前我檢查是否$ _POST不爲空,我將運行刪除/插入一次。它使我的代碼很長,因爲我必須同時檢查A,B,C,D再插入/刪除
if($a != ""){
$wpdb->query("DELETE FROM $wpdb->postmeta WHERE meta_key=rate1 AND post_id=".$_POST['postid']);
$wpdb->query("INSERT INTO $wpdb->postmeta (post_id,meta_key,meta_value) VALUES ($_POST['postid'],rate1,$a) ");
}
您的代碼易受注入。請使用[PDO](http://php.net/manual/en/book.pdo.php)或[Mysqli準備好的陳述](http://php.net/manual/en/mysqli.quickstart.prepared-statements .php) – IsThisJavascript
如果你可以將你的輸入重構成數組,你會發現使用起來更容易。如果你有以數字或字母命名的變量,這是一個好兆頭,你應該使用數組來代替。 – iainn
這個代碼只是一個簡單的代碼,我寫了一個建議,而不是我的項目中的真實代碼:D – user3064132