Я сталкиваюсь со странной ситуацией с выполнением PHP запроса SQL, который, возможно, кто-то может пролить немного света:
У меня есть запрос, который говорит:
"SELECT COLUMN_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = $table
AND COLUMN_NAME = $column"
Запрос должен возвращать строку: enum('A','B'[,'C'...])
при выполнении (как это происходит при выполнении запроса из командной строки. $table
и $column
передаются в функцию, выполняющую запрос, и в моем тестовом примере правильные -оба существуют как таблица и столбец соответственно. В этом случае давайте установим $table = 'profile'
и $column = 'gender'
, для которых вышеприведенный оператор SQL возвращает следующую ошибку:
Unknown column 'profile' in 'where clause' in /registry/mysqldb.class.php on line 31
Строка 31 является функцией кэшированиякэшировать запросы до тех пор, пока они не потребуются, или вызвать ошибку при сбое запроса. Это работает нормально в любом другом случае. Я подключен к правильной базе данных при выполнении запроса.
Мой вопрос такой: Почему'profile' интерпретируется как столбец и вызывает ошибку?