mysql使用pdo简单封装select语句

最终代码:

 1 function pdo_array_query($pdo, $table_name, $data, $fields=array('*')){
 2     //Will contain SQL snippets.
 3     $rows_sql = array();
 4     //Will contain the values that we need to bind.
 5     $to_bind = array();
 6     //Get a list of column names to use in the SQL statement.
 7     $codition_array = array();
 8 
 9     $codition_string = "";
10     
11     foreach($data as $column_name => $column_value){
12         $codition_array[] = $column_name.' = :'.$column_name;
13         $param = ":" . $column_name;
14         $to_bind[$param] = $column_value;
15     }
16     $codition_string = implode(" and ", $codition_array);
17     $fields_string = implode(", ", $fields);
18 
19     $sql = "SELECT $fields_string FROM `$table_name` WHERE ".$codition_string;    
20     
21     //Prepare our PDO statement.
22     $pdo_statement = $pdo->prepare($sql);
23 
24     foreach($to_bind as $param => $val){
25         $pdo_statement->bindValue($param, $val);
26     }
27     // return $pdo_statement->execute();
28     $pdo_statement->execute();
29     $result = $pdo_statement->fetchAll();
30     return $result;
31     //print_r($result);
32 }
View Code

用法:

    $pdo = get_mysql_connect(); // 自定义 获取pdo实例的方法
    $table_name = 'order'; // 表名
    $fields = array("idproduct", "email", "customer", "address");// 需要查询的字段
    $data = array(
        "idpayment"=>"1270117360-13027-963488",
        "name"=>"John",
        "age"=>"28",
        "sex"=>"boy",
    ); // 查询的条件
    pdo_array_query($pdo, $table_name, $data, $fields);

拼合后的 sql 如下:

SELECT idproduct, email, customer, address FROM `order` WHERE idpayment = :idpayment and name = :name and age = :age and sex = :sex



猜你喜欢

转载自www.cnblogs.com/tommy-huang/p/9049935.html