我有一些代码可以通用化构建SQL字符串,以通过(1)将form元素的“名称”设置为与其对应的表列相同的方式,以及(2)构建SQL字符串以将记录插入表中。字段名称=>值对的数组。我是这样的:
$fldArray = array();
foreach($_POST as $field => $value) {
$fldArray[$field] = $value; //create a field => value array
}
这使我可以像这样轻松地构建SQL语句:
$visit_SQL = "INSERT INTO visits (";
foreach ($fldArray as $key => $value) {
$flds .= ($key) . ", " ; // sets up all the field names.
然后,我执行类似的操作以生成SQL语句的“ VALUES”部分。然后,我只需要添加provider_id信息
$visit_SQL = $visit_SQL . "provider_id, " . $flds . ") VALUES (" . $user_ID . ", " . $vals . ")";
之所以这样做,是因为表单上有很多“是/否”复选框,因此可以节省键入错误等。
这很好用,除了两个需要在插入数据库之前需要“ $ mysqli-> escape_string(['field_name'])处理撇号等的文本输入”。 我证明以下内容适用于显式字段名称,
$test = $mysqli->escape_string($_POST['visit_notes']);
print_r($test) ;
但是,我无法将其概括为以下语句(从上面):
foreach($_POST as $field => $mysqli->escape_string($_POST[$value])) {
$fldArray[$field] = $value;
}
我很高兴知道我是否有语法错误,或者我找不到想要的东西。 预先感谢您的任何有用答复。
答案 0 :(得分:0)
您不必将函数调用放在foreach
标头中,而是将其放在正文中。
foreach($_POST as $field => $value) {
$fldArray[$field] = $mysqli->escape_string($value);
}