Почему я получаю синтаксическую ошибку, когда готовлю оператор для удаления базы данных? [дубликат]Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Почему я получаю синтаксическую ошибку, когда готовлю оператор для удаления базы данных? [дубликат]

Сообщение Anonymous »

В моем коде я пытаюсь удалить базу данных:

Код: Выделить всё

  $connectionString="mysql://...";
$pdo = new PDO($connectionString);

...

// I intentionally Drop the Db from the user-given db name
// Details ommited for simplicity
$testDbName=$_POST['db_name'];
$stmt = $pdo->prepare("DROP DATABASE :db");
$stmt->bindValue(":db", $testDbName);
$stmt->execute();
Но я получаю следующую ошибку:

Код: Выделить всё

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''test_php_app_1076'' at line 1.ESQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''test_php_app_1076'' at line 1

Но если я попробую это:

Код: Выделить всё

  $pdo->query("DROP DATABASE `" . str_replace('`', '``', $testDbName) . "`");
Кажется, работает нормально. Есть ли способ заставить это работать, используя подготовленные операторы?

Подробнее здесь: https://stackoverflow.com/questions/790 ... pping-a-db
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»