У меня есть очень простая вспомогательная функция для создания оператора SET для традиционного простого драйвера mysql:
function dbSet($fields) {
$set='';
foreach ($fields as $field) {
if (isset($_POST[$field])) {
$set.="`$field`='".mysql_real_escape_string($_POST[$field])."', ";
}
}
return substr($set, 0, -2);
}
используется вот так
$id = intval($_POST['id']);
$fields = explode(" ","name surname lastname address zip fax phone");
$_POST['date'] = $_POST['y']."-".$_POST['m']."-".$_POST['d'];
$query = "UPDATE $table SET ".dbSet($fields)." stamp=NOW() WHERE id=$id";
делает код довольно СУХИМ и легким, но в то же время гибким.
Я должен спросить, хочет ли кто-нибудь разделить подобную функцию, используя функцию подготовленных операторов PDO?
Я все еще сомневаюсь, как это сделать.
Существует ли прямой и простой способ использовать подготовленные операторы PDO для вставки данных?
В какой форме это должно быть? Помощник строителя запросов? Или вставить запрос помощника? Какие параметры это должно принять?
Я надеюсь, что это может быть достаточно легко, чтобы быть использован в качестве ответа здесь, на SO. Потому что в каждой теме мы видим рекомендации по использованию готовых операторов, но нет ни одного хорошего примера. Я имею в виду пример из реальной жизни. Я считаю, что набирать bind_param () 20 раз - не очень хороший стиль программирования.
И даже 20 вопросительных знаков тоже.