我在PDO语句中有以下代码块:
$stmt = $db->prepare("INSERT INTO first_page_data (title, first_name, surname, phone, email, add1, add2, add3, add4, add5) VALUES(?,?,?,?,?,?,?,?,?,?)");
$stmt->bindValue(1, $_POST['title'], PDO::PARAM_STR);
$stmt->bindValue(2, $_POST['first_name'], PDO::PARAM_STR);
$stmt->bindValue(3, $_POST['surname'], PDO::PARAM_STR);
$stmt->bindValue(4, $_POST['phone'], PDO::PARAM_INT);
$stmt->bindValue(5, $_POST['email'], PDO::PARAM_STR);
$stmt->bindValue(6, $_POST['add1'], PDO::PARAM_STR);
$stmt->bindValue(7, $_POST['add2'], PDO::PARAM_STR);
$stmt->bindValue(8, $_POST['add3'], PDO::PARAM_STR);
$stmt->bindValue(9, $_POST['add4'], PDO::PARAM_STR);
$stmt->bindValue(10, $_POST['add5'], PDO::PARAM_STR);
$stmt->execute();
$_SESSION['buyer_email'] = $_POST['email'];
可以使用数组和bindValues
循环将这些参数(title,first_name等)放入for each
吗?我可以通过只包含一个包含标题的数组来获取prepare语句,但似乎无法在$ _POST值中获取变量名。它会节省很多代码,但我不能完全实现!
以下是我想在绑定值循环中使用的预准备语句中使用的数组:
$first = array('title','first_name','surname','phone','email','add1','add2','add3','add4','add5');
答案 0 :(得分:2)
只需循环遍历$first
并为每个人致电bindValue
。
foreach($first as $key=>$val){
$stmt->bindValue($key+1, $_POST[$val], PDO::PARAM_STR);
}
答案 1 :(得分:-1)
或者您可以像这样使用它:
$stmt = $db->prepare("INSERT INTO first_page_data (title, first_name, surname, phone, email, add1, add2, add3, add4, add5) VALUES(?,?,?,?,?,?,?,?,?,?)");
$stmt->execute($array);
数组就像:
$array = array($_POST['title'],$_POST['first_name']);
或者如果您已经有正确的订单
$array = $_POST;