Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не могу записать одинарную кавычку

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
zzzzzz
Отправлено: 21 Января, 2013 - 16:19:56
Post Id


Гость


Покинул форум
Сообщений всего: 117
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Здравствуйте.
Не могу записать в базу одинарную кавычку - '
Имею поле textarea из которого в базу в поле типа TEXT попадает запись. Пытаюсь сохранить текст с одинарной ковычкой внутри, не записывается, помогите

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 '''' WHERE id=136' at line 1.

Попытался найти в гугле, да только не смог нормально сформировать поисковой запрос.
 
 Top
spsu
Отправлено: 21 Января, 2013 - 16:27:05
Post Id



Частый гость


Покинул форум
Сообщений всего: 176
Дата рег-ции: Нояб. 2012  


Помог: 3 раз(а)




zzzzzz пишет:
Здравствуйте.
Не могу записать в базу одинарную кавычку - '
Имею поле textarea из которого в базу в поле типа TEXT попадает запись. Пытаюсь сохранить текст с одинарной ковычкой внутри, не записывается, помогите

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 '''' WHERE id=136' at line 1.

Попытался найти в гугле, да только не смог нормально сформировать поисковой запрос.

Экранировать их надо, addslashes, а при выводе из БД stripslashes, а если данне от юзверя то mysql_escape_strinng.
 
 Top
zzzzzz
Отправлено: 31 Марта, 2013 - 20:56:43
Post Id


Гость


Покинул форум
Сообщений всего: 117
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Применил вышеописанные функции но они не спасают от - &;
Амперсант все равно не записывается в базу.
Подскажите пожалуйста
 
 Top
OrmaJever
Отправлено: 31 Марта, 2013 - 21:04:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




zzzzzz пишет:
Амперсант все равно не записывается в базу.

а почему амперсанд не должен записыватся в базу? Если он вам не нужен можите заменить его str_replace()


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
zzzzzz
Отправлено: 31 Марта, 2013 - 22:20:32
Post Id


Гость


Покинул форум
Сообщений всего: 117
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




наоборот он мне нужен, но когда его пытаюсь записать в поле типа TEXT он не записывается. Допустим статья, если в ней встречается & то статья в базу не записывается
(Добавление)
если невнятно пытаюсь объяснить, скажите, я перефразирую.
 
 Top
OrmaJever
Отправлено: 31 Марта, 2013 - 22:28:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




просто так не записыватся он не может, функции addslashes, mysql_escape_strinng или подобные его не удаляют, смотрите по коду почему его нет. Как предположение, может вы используете htmlspecialchars?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
KingStar
Отправлено: 31 Марта, 2013 - 22:30:04
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




мне кажется что нужно увидеть код, который отвечает за запись в БД


-----
То что программа работает, не означает что она написана правильно!
 
 Top
zzzzzz
Отправлено: 31 Марта, 2013 - 23:01:50
Post Id


Гость


Покинул форум
Сообщений всего: 117
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Извиняюсь, ввел Вас в заблуждение.
Короче говоря, при клике на кнопку сохранить, при помощи jquery помещаю статью в переменную var и методом аякс пост отправляю на сервер. (тобишь пытаюсь аяксом сохранить статью в базе )

Теперь я попытался выяснить кто js или php теряет по дороге этот амперсант.
Пока только jquery без php: нажимаю на сохранить, помещаю текст переменную и вывожу эту переменную сразу же на консоль. все нормально амперсант присутствует.

Теперь методом &.ajax отправляю этот текст на сервер
PHP:
скопировать код в буфер обмена
  1. if(isset($_POST['text'])) {
  2. $text = $_POST['text'];
  3. print $text;
  4. }

и то что мне вернул сервер опять же вывожу на консоль - и тут амперсанта уже нет.
В какой момент амперсант исчезает? когда метод отсылает на сервер или же когда сервер принимает или же ... Что мне делать?

(Отредактировано автором: 31 Марта, 2013 - 23:13:32)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB