Intereting Posts
Печать текущей страницы в pdf с помощью wkhtmltopdf JWT (JSON Web Token) на PHP без использования сторонней библиотеки. Как подписать? Условное присвоение значений PHP Как передать выбранное значение в модальном поле PHP? Отфильтровать заказы с помощью WP_Query из массива идентификаторов заказов в WooCommerce Корреляция URL-адресов PHP, сохраняющая недопустимые URL-адреса Размер памяти исчерпан при попытке использовать MySQLi Невозможно подключиться к MySQL через PHP-скрипт при использовании mysqli или PDO, но mysql работает Сгенерированное изображение в mpdf Как создать плейлист SoundCloud с помощью PHP-обертки Почему мое изображение iframe исчезает? RSS Пространства имен с использованием Zend_Feed_Reader Активная запись Codeigniter 2 – Как создать временную таблицу для применения второго порядка сортировки? Необлученное сообщение об ошибке «PDOException» «недопустимое имя источника данных» Можете ли вы использовать REST в PHP? Если да, то как?

Запрос таблицы с амперсандом в названии

Я в процессе очистки базы данных MySQL и должен сделать некоторые подобные изменения в нескольких таблицах. Таким образом, я собираю список таблиц

$query = " SELECT TABLE_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'myDB' AND COLUMN_NAME = 'activeColumn'"; 

затем перебирайте каждый, внося изменения, которые мне нужны. Проблема в том, что некоторые из этих таблиц имеют амперсанд в названии. Я думаю, что PHP и / или MySQL имеют проблемы с этим, поскольку это бросает это мое направление

 /* $query = "SELECT * FROM Cats&Dogs"; */ You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '&Dogs' at line 1 

Я нашел способы исправить эту проблему, когда вам нужно вставить амперсанд в БД и даже когда у вас есть один в предложении WHERE (правда, это даже не полное решение, но это лучшее, что я нашел). Если я введу точный запрос в MySQL без использования PHP, тогда он будет работать.

Что может быть причиной этой проблемы?

Solutions Collecting From Web of "Запрос таблицы с амперсандом в названии"

Обратные кавычки. SELECT * FROM `Cats&Dogs` .

Ссылка: http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

Попробуйте экранировать имя таблицы с помощью обратной одиночной кавычки:

 SELECT * FROM `Cats&Dogs`; 

используйте addslashes() когда вы отправляете ввод в базу данных и используете stripslashes() при получении из datase, это позволит хранить и извлекать специальные символы в базе данных