Переименование недопустимых имен столбцов с помощью PHP для mySQL - PullRequest
1 голос
/ 19 августа 2011

В моей таблице есть столбец с именем «read». Когда я пытаюсь выполнить над ним какие-либо операции, PHP сообщает мне, что есть ошибка «read». Из предыдущего опыта с такого рода ошибками я определил, что имя столбца «чтение» является недопустимым. Проблема в том, что я не могу переименовать столбец с помощью PHP. Каждый раз, когда я пытаюсь, я получаю сообщение об ошибке (фактически, та же самая ошибка). Когда я захожу в PHPMyAdmin и меняю его там, он прекрасно работает потом.

Любые идеи о том, как я могу изменить имя столбца с помощью PHP?

Ответы [ 2 ]

5 голосов
/ 19 августа 2011

Используйте обратные пометки вокруг имени таблицы, например:

select * from `read`

Он сообщает MySQL, что вы ссылаетесь на имя, а не на ключевое слово.

2 голосов
/ 19 августа 2011

Когда вы говорите «переименовать», вы имеете в виду, что пытаетесь изменить само определение таблицы, например, с помощью ALTER TABLE?В этом случае не должно быть разницы между вашим PHP-кодом и PHPMyAdmin (поскольку последний сам по себе является просто PHP-кодом).Единственная проблема, с которой вы можете столкнуться, - это если вы входите в систему под другим PHP-пользователем, чем в PHPMyAdmin.Вам нужно убедиться, что у пользователя есть привилегии ALTER для этой таблицы.

Если вы говорите только о выполнении обычных запросов к таблице и просто хотите предотвратить возникновение синтаксической ошибкизатем вы можете просто обернуть имена полей и / или таблиц в обратные тики - т.е. ` обычно на том же ключе, что и тильда ~ на числовой панели - и MySQL сможетразличать имя поля и зарезервированное слово.

...