PHP动态字段INSERT MySQL

时间:2017-11-21 14:16:36

标签: php mysql dynamic insert implode

我有一个动态表单,可以说出以下字段:

 <input type="text" name="firstname">
 <input type="text" name="surname">
 <textarea name="description">

假设我在Mysql上有一个具有相同列名的表。

当我发布时,我希望将数组拆分为列名和值,然后将其插入到预准备语句中:

我尝试过以下方法:

foreach($_POST as $key => $value) {
$keys .= $key.',';
$values .= $value.',';
$q.= '?,';
$type .= 's';

}
rtrim($keys,',');
rtrim($values,',');
rtrim($q,',');

 $insert_stmt = $mysqli->prepare("INSERT INTO ".$form_table." (".$keys.") VALUES (".$q.")");
 $insert_stmt->bind_param($type, $values);  
 $insert_stmt->execute();

似乎失败了          bind_param()失败

我猜测它将$值视为一个长串...我接近了?

1 个答案:

答案 0 :(得分:1)

//i - integer
//d - double
//s - string
//b - BLOB

$type = '';
$keys = '';
$values = '';
foreach($_POST as $key => $value) {
    $keys .= $key.',';
    $values .= $value.',';

    //change type according to your need or based on your data type.
    $type .= 's';
}
rtrim($keys,',');
rtrim($values,',');


//use keys, type and values