LINUX.ORG.RU

Маленький совет по SQL-запросу

 ,


0

2

Выполняю запрос:

INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, (Select max(id) FROM wp_users), 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');

и получаю ошибки:

INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, (Select max(id) FROM wp_users), 'wp_capabilities', ''a:1:{s:13:"administrator";   [ error ]

s:1:"1";   [ error ]

}'');   [ error ]

Надо экранировать символы? если да – то как?


Ответ на: комментарий от MyTrooName
'a:1:{s:13:"administrator";s:1:"1";}'

вот эта часть от начальной ' до конечной ' должна попасть как значение в то поле, а парсер видит это с другой точки зрения

emostar
() автор топика
Ответ на: комментарий от emostar

Ну как так, если я прямо сейчас это делаю. phpmyadmin не пользуюсь, просто из консоли это сделал. Зайди в консоль, и убедись

INSERT INTO `test` (`test`) VALUES ('\'\'\'\'\'\'\'');
Ты что-то явно делаешь не так. Но я не телепат, нужны подробности.

znenyegvkby
()
Ответ на: комментарий от znenyegvkby

Хотя нет, могу немного потелепатить, это ж phpmyadmin, вангую и парсер ваш на php, а у php, ЕМНИП, есть волшебные кавычки, в частности директива magic_quotes_sybase
http://php.net/manual/en/security.magicquotes.disabling.php

; Use Sybase-style magic quotes (escape ' with " instead of \').

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

znenyegvkby
()

Я не специалист, но может точка с запятой в MySQL имеет особые свойства.

'a:1:{s:13:«administrator»;s:1:«1»;}');

ThePretender
()
Ответ на: комментарий от emostar

это три апострофа "' (скопипасти да посмотри)

первый открывает строку, а еще два - это, если выше правильно написали, sybase-экранирование.

MyTrooName ★★★★★
()
Последнее исправление: MyTrooName (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.