[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Амперсанд в названии таблицы БД.
sebastjan
Вот незадача, есть определённое имя для таблицы в БД, там доллжен присутствовать знак амперсанд,(&) Типа так ВАСЯ & КОМПАНИЯ
РНР ошибку не выкидывает, выкидываем Мускул.
Пробовал применить функцию htmlspecialchars - не помогает.
Как бы так сделать чтоб Мускул воспринимал в именах таблицы эту закорючку?
Может функцию addslashes использовать чтоб экранировала?



Спустя 1 минута, 58 секунд (21.11.2011 - 12:15) m4a1fox написал(а):
А если & - хотя htmlspecialchars это и так делает.... хз! Интересный вопрос!
А если экранировать!?

Спустя 12 минут, 9 секунд (21.11.2011 - 12:27) sebastjan написал(а):
Вот запрос к таблице

$result=mysql_query("SELECT * FROM `ABC & TDD` ");

Мускул говорит что синтаксическая ошибка.
стоит убрать эту закорючуц амперсанд и всё работает.
И что я не так понимаю?
Мускул
пункт 6.1.2
Ведь всё правильно - заключил в обратные кавычки?!
Туплю по полной. <_<
В одном месте написанно
Цитата
Необходимо также учитывать, что не следует использовать символы ASCII(0), ASCII(255) или кавычки в самом идентификаторе.

В другом месте написанно
Цитата
Любой символ, допустимый в имени файла, за исключением `/' или `.'


Вроде - если если в обратных кавычках - должно работать или всё таки экранировать ?

Спустя 24 минуты, 11 секунд (21.11.2011 - 12:51) Michael написал(а):
У меня на локалке(винда) не выдает никакой ошибки такой запрос.

Спустя 6 минут, 9 секунд (21.11.2011 - 12:57) Placido написал(а):
У меня тоже все в порядке.
mysql> create table `Вася & Ко` (id int primary key auto_increment, text text);
Query OK, 0 rows affected (0.01 sec)

mysql> insert into `Вася & Ко` (text) values ('ааа1'), ('ааа2'), ('ааа3'), ('ааа
4');
Query OK, 4 rows affected (0.02 sec)
Records: 4 Duplicates: 0 Warnings: 0

mysql> select * from `Вася & Ко`;
+----+------+
| id | text |
+----+------+
| 1 | ааа1 |
| 2 | ааа2 |
| 3 | ааа3 |
| 4 | ааа4 |
+----+------+
4 rows in set (0.00 sec)


Спустя 2 минуты, 38 секунд (21.11.2011 - 13:00) linker написал(а):
Если у вас возникает желание воспользоваться чем-то нестандартным, что в принципе не сможет прийти в трезвомыслящую голову, то нужно что-то менять в логике работы вашего приложения.

Спустя 8 минут, 10 секунд (21.11.2011 - 13:08) sebastjan написал(а):
кажись докопал, я значение по гет передаю название с амперсандом.
вот криво и прилетает в запрос к БД.

$tem=$_GET['tem'];
$result=mysql_query("SELECT * FROM `".$tem."` ");


стоит вбить на прямую -сразу работает.
Надо както правильно написать в гет запросс.

Спустя 2 минуты, 19 секунд (21.11.2011 - 13:10) sebastjan написал(а):
linker
Да вроде в хелпе по мускулу написанно всё правильно. Это я лапух не подумал про то что через гет запрос амперсанд криво прилетает в запрос к БД.
Спасибо всем за помощь, тема исчерпанна, класические мои ошибки.

Спустя 1 час, 53 минуты (21.11.2011 - 15:03) linker написал(а):
sebastjan
Я о том, что если в названии столбцов в таблице базы данных, или в переменных вашего php-кода появляются странные символы, не входящие в список a-zA-z0-9_- то надо думать, что говнокод ещё тот и пора всё переписывать.

Спустя 9 минут, 24 секунды (21.11.2011 - 15:13) Michael написал(а):
полностью солидарен с linker-ом.

Спустя 55 минут, 40 секунд (21.11.2011 - 16:08) sebastjan написал(а):
Цитата (linker @ 21.11.2011 - 12:03)
sebastjan
Я о том, что если в названии столбцов в таблице базы данных, или в переменных вашего php-кода появляются странные символы, не входящие в список a-zA-z0-9_- то надо думать, что говнокод ещё тот и пора всё переписывать.

Ну так, главное есть желание его улучшить. smile.gif
Я так и сделал, выбросил из головы эту идею с странными символами.

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

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.