$mysqli->escape_string - 是否可以在不指定确切字段名的情况下使用
$mysqli->escape_string - can it be used without specifying exact field name
我有代码通过 (1) 将表单元素的 'name' 设置为与table 它对应的列,以及 (2) 构建字段名称 => 值对的数组。我这样做:
$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 . ")";
我这样做的原因是表单上有大量 Yes/No 复选框,因此可以避免输入错误等问题。
除了两个文本输入需要 "$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;
}
我很想知道我是否有语法错误或者我正在寻找的东西是不可能的。
预先感谢您提供任何有用的回复。
您不要将函数调用放在 foreach
header 中,而是放在 body.
中
foreach($_POST as $field => $value) {
$fldArray[$field] = $mysqli->escape_string($value);
}
我有代码通过 (1) 将表单元素的 'name' 设置为与table 它对应的列,以及 (2) 构建字段名称 => 值对的数组。我这样做:
$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 . ")";
我这样做的原因是表单上有大量 Yes/No 复选框,因此可以避免输入错误等问题。
除了两个文本输入需要 "$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;
}
我很想知道我是否有语法错误或者我正在寻找的东西是不可能的。 预先感谢您提供任何有用的回复。
您不要将函数调用放在 foreach
header 中,而是放在 body.
foreach($_POST as $field => $value) {
$fldArray[$field] = $mysqli->escape_string($value);
}