PHP generate dynamic PDO insert

后端 未结 4 1720
半阙折子戏
半阙折子戏 2020-12-06 19:44

The following code should insert each key-value pair in an array into a mathing column-value in a table. The script returns no errors but the the inserted row contains only

4条回答
  •  借酒劲吻你
    2020-12-06 20:28

    $conn = new PDO('mysql:host=' . $HOST . ';dbname=' . $DATABASE, $USERNAME, $PASSWORD);
    $conn->exec("set names utf8");
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
    
    $ins_query = 'INSERT INTO `' . $table_name . '` ';
    
    $columns = array();
    $columns_bindings = array();
    foreach ($dataArray as $column_name => $data) {
        $columns[] = $column_name;
        $columns_bindings[] = ':' . $column_name;
    }
    
    $ins_query = $ins_query . '(' . implode(', ', $columns) . ') VALUES (' . implode(', ', $columns_bindings) . ')';
    
    $stmt = $conn->prepare($ins_query);
    
    foreach ($dataArray as $column_name => $data) {
        $stmt->bindValue(":" . $column_name, $data);
    }
    if (!$stmt->execute()) {
        print_r($stmt->errorInfo());
    
    } else {
        echo "Insertd";
    }
    

提交回复
热议问题