我有这段代码:
public function addPlaces($place_data_arr){
print_r($place_data_arr);
if ($this->databaseConnection()) {
$q = 'INSERT INTO dati_places (';
foreach($place_data_arr as $key => $value){
if($key != 'add_place'){
$q .= $key.', ';
}
}
$q .= 'customer_id) VALUES (';
foreach($place_data_arr as $key => $value){
if($key != 'add_place'){
$q .= '"'.$value.'", ';
}
}
$q .= $this->user_id .')';
$query_place = $this->db_connection->prepare($q);
$query_place->execute();
}
}
函数参数$ place_data_arr包含许多我必须在数据库中插入的元素(大约10个)。 如果我使用上面的代码,我应该使用myqsli_real_escape_string()。否则,我可以将bindValue用于预处理语句。 如果我选择第二个选项,我是否必须这样做:
$query_place->bindValue(':element1',....., PDO::PARAM_STR);
$query_place->bindValue(':element2',....., PDO::PARAM_STR);
$query_place->bindValue(':element3',....., PDO::PARAM_STR);
.
.
.
等等还是有一种程序化的方法呢? 使用bindValue是不是必须使用mysqli_real_escape_string()??