我有一个动态表单,可以说出以下字段:
<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()失败
我猜测它将$值视为一个长串...我接近了?
答案 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