У меня есть код, который обобщает построение строки SQL для вставки записи в таблицу путем (1) установки «имени» элемента формы таким же, как столбец таблицы, которому он соответствует, и (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.
Затем я делаю что-то похожее, чтобы сгенерировать часть VALUESОператор SQLЗатем мне нужно только добавить информацию провайдера
$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;
}
Буду признателен, если узнаю, есть ли у меня синтаксическая ошибка или то, что я ищуне представляется возможным. Заранее благодарим за любые полезные ответы.