//Get Services and save to database first.
for($i = 0; $i < count($_POST["wc_service_id"]); $i++) {
$wc_service_id = $_POST["wc_service_id"][$i];
$wc_service_name = $_POST["wc_service_name"][$i];
$wc_service_code = $_POST["wc_service_code"][$i];
$wc_service_qty = $_POST["wc_service_qty"][$i];
$wc_service_price = $_POST["wc_service_price"][$i];
$insert_query = "INSERT INTO `".$computer_repair_items."` VALUES(NULL, \'".$wc_service_name."\', \'services\', \'".$post_id."\')";
$wpdb->query(
$wpdb->prepare($insert_query)
);
$order_item_id = $wpdb->insert_id;
$insert_query = "INSERT INTO `".$computer_repair_items_meta."`
VALUES(NULL, \'".$order_item_id."\', \'wc_service_code\', \'".$wc_service_code."\'),
(NULL, \'".$order_item_id."\', \'wc_service_id\', \'".$wc_service_id."\'),
(NULL, \'".$order_item_id."\', \'wc_service_qty\', \'".$wc_service_qty."\'),
(NULL, \'".$order_item_id."\', \'wc_service_price\', \'".$wc_service_price."\')";
$wpdb->query(
$wpdb->prepare($insert_query)
);
}//Services Processed nicely
上面的代码运行得很好,唯一的问题是我得到了这个通知:调试模式打开时。我不应该收到任何通知。注意:wpdb::prepare的调用不正确。wpdb::prepare()的查询参数必须有占位符。
有什么建议吗?我知道删除prepare(会解决问题。但如果您认为没有必要,我希望保留查询,请解释。
还可以为第一个查询添加%s,%d。但是对于第二个查询,如果我有3个值,该怎么办?
提前感谢您的回复。