Подготовленный оператор не работает с табличными запросами ALTER

Я пишу простую функцию, чтобы добавить столбец в таблицу, используя PHP с PDO для подготовки запроса.

Соединение ( $dbh ) работает, другие запросы, которые не связаны с параметрами, работают. Однако важный запрос, который добавляет столбец, не работает.

Когда я проверяю базу данных, есть новый столбец с столбцом с именем ? (т.е. только вопросительный знак) и все атрибуты, которые я указал.

Я проверил, чтобы переменная $column проходила правильно, и, кроме того, оператор execute возвращает false, поэтому, как утверждается, оператор не работает, но как-то столбца все еще создается.

Информация об ошибке не очень полезна (по крайней мере для меня):

 Array ( [0] => 00000 ). 

Я прочесывал код для простых опечаток, но ничего не вижу. Есть идеи?

 $qry='ALTER TABLE `completed` ADD `:column` TINYINT(1) NOT NULL DEFAULT 0'; $stmt = $GLOBALS['dbh']->prepare($qry); $stmt->bindParam(":column",$column,PDO::PARAM_STR); $stmt->execute(); $arr = $stmt->errorInfo(); print_r($arr); $stmt===TRUE ? $return=1 : $return=0; 

http://dev.mysql.com/doc/refman/5.6/en/prepare.html говорит:

Маркеры параметров могут использоваться только там, где должны отображаться значения данных, а не для ключевых слов SQL, идентификаторов и т. Д.

По идентификаторам они означают имена баз данных, имена таблиц, имена столбцов, имена индексов, имена разделов и т. Д.

По значениям данных они означают числовой литерал, цитируемый строковый литерал или литерал с датой кавычек.

Чтобы добавить новый столбец, перед тем, как подготовить запрос, вам нужно указать имя этого столбца в строке SQL. Это означает, что вам решать, чтобы в имени столбца не было смешных символов, которые могли бы создать уязвимость SQL-инъекции.