я использовал следующий код для того, чтобы заполнить базу данных с помощью PDO:PDO подготовка не заменяет заполнители
$stmt = $pdo->prepare("
INSERT INTO :season
VALUES
(
:tag,:rank, //and so on
);
");
for($l = 0; $l < count($data); $l++) {
$stmt->execute([
'season' => $tables[$i],
'tag' => $data[$l]["tag"],
'rank' => $data[$l]["rank"],
// and so on
]);
}
Но ответ я получаю:
Синтаксическая ошибка или нарушение прав доступа : 1064 У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MariaDB, для правильного синтаксиса для использования рядом с '? ЗНАЧЕНИЯ «в строке 1' в Е (,,,,,,,,??????): \ XAMPP \ HTDOCS \ CoC_API \ Legenden \ SQL_Test \ API_SQL.php
ли кто-то знаете, где ошибка?
Должен ли я помещать каждую запись в кавычки?
Вам обычно не разрешается вводить имя таблицы в качестве параметра. –
И дополнительно к TiesonT. именам параметров в вызове execute() должен предшествовать старший двоеточие. – user5329483
Наконечник Тьесона зафиксировал его. Но есть ли другой способ сделать динамическое имя таблицы. Имя таблицы - это числовой идентификатор, и его не нужно экранировать. –