два массива:
$columns = array('mail', 'phone', 'author', 'title');
$values = array('some mail', 'some phone', 'an author', 'a title');
Возможно ли что-то вроде этого:
$sql = "insert into actual (" . implode(', ', $columns) . ") values (" . implode(', ', $values) . ")";
$st = $db->prepare($sql);
$st->execute(); // line 23
Я попытался получить синтаксическую ошибку в строке 23
.
Чтобы написать это как подготовленное выражение с владельцами мест, вам нужно повторить ?
для каждого поля, а затем передать значения с помощью bindParam()
(при условии, что mysqli)...
$columns = array('mail', 'phone', 'author', 'title');
$values = array('some mail', 'some phone', 'an author', 'a title');
// Create place holders (need to remove last comma - done in build of SQL)
$valuesPlace = str_repeat("?,", count($values));
$sql = "insert into actual (" . implode(', ', $columns) . ")
values (" . rtrim($valuesPlace, ",") . ")";
$st = $db->prepare($sql);
// Bind a list of string values (big assumption)
$st->bindParam(str_repeat("s", count($values)), ...$values);
$st->execute(); // line 23