вспомогательная функция - это функция, которая помогает вам избежать написания множества повторяющихся кодов каждый раз, когда вы хотите выполнить запрос.
Это называется «программирование», и на этом сайте его практически нет, по крайней мере, под тегом «PHP».
В то время как многие люди считают, что программирование означает копирование / вставку фрагментов кода из ручных примеров, оно несколько иное.
Хотя это трудно выучить, но оно того стоит, особенно если вы посвящаете себя веб-разработке.
Как видите, ни один принятый ответ не помог вам, так как вам все еще нужно написать что-то вроде
$sth->execute(array(':username' => $_POST['username'],
':email' => $_POST['email']
':password' => $_POST['password']);
столько раз, сколько полей в вашей таблице, что не сильно отличается от вашего первоначального подхода, все равно заставляет вас писать каждое имя поля ЧЕТЫРЕ раза.
Но, будучи программистом, вы можете использовать возможности программирования. Например, цикл - один из ключевых операторов программирования.
Каждый раз, когда вы видите повторения, вы знаете, что должен быть цикл.
например, вы можете настроить список полей, называя их только один раз.
И пусть программа сделает все остальное.
Скажите, такая функция, как эта
function pdoSet($fields, &$values, $source = array()) {
$set = '';
$values = array();
if (!$source) $source = &$_POST;
foreach ($fields as $field) {
if (isset($source[$field])) {
$set.="`$field`=:$field, ";
$values[$field] = $source[$field];
}
}
return substr($set, 0, -2);
}
имея массив имен полей, он может создать для вас оператор вставки и массив данных. Программный. Итак, ваш код становится не более чем этими 3 короткими строками:
$fields = array('username', 'email', 'password');
$stmt = $dbh->prepare("INSERT INTO accounts SET ".pdoSet($fields,$values));
$stmt->execute($values);