Mysql编写语句和bindValue以编程方式为具有许多输入的Insert查询

时间:2014-07-03 15:20:19

标签: php pdo mysqli bindvalue

我有这段代码:

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()??

0 个答案:

没有答案