Страница 1 из 1
Замена кавычки(") на спецсимвол (")
Добавлено: 14 Февраль 2013, 0:08
gopstop2007
Добрый вечер!
Клиентская программа записывает наименование товара на сервер MySQL, нужно экранировать спецсимволы. На сервере надо " , а у клиента ". Где в MAV "прикрутить", чтобы с минимальными телодвижениями, при отправке и получении данных, форматировать строку с нужными требованиями?
Clarion 6.3 ABC (MAV ODBC ver 1.00 коммерческая)
Re: Замена кавычки(") на спецсимвол (")
Добавлено: 14 Февраль 2013, 7:03
Admin
Подробнее можно?
Двойная кавычка вполне может присутствовать в названии товара и SQL скрипту не должна мешать.
Re: Замена кавычки(") на спецсимвол (")
Добавлено: 14 Февраль 2013, 11:37
Andrew™
кавычки и запятычки могут присутствовать в строковых полях, на формат SQL запроса они никоим образом не влияют т к все исходные данные биндуются (
любое поле в запросе превращается ВСЕГДА в знак вопроса (?)) и получается что то типа:
Код: Выделить всё
10617296 Binding field 1 "SessionRef" = 4389
10617296 Binding field 2 "Thread" = 2
10617296 Binding field 3 "CountEvents" = 0
10617296 Binding field 4 "ProcName" = Import SAP Excel reports
10617296 Parsing Cursor : INSERT INTO [dbo].[DT.Events] ("SessionRef","Thread","CountEvents","ProcName") VALUES(?,?,?,?) SELECT SCOPE_IDENTITY()
а получить этот символ можно из объекта
MAVCursor
Re: Замена кавычки(") на спецсимвол (")
Добавлено: 14 Февраль 2013, 14:12
gopstop2007
Admin писал(а):Подробнее можно?
Двойная кавычка вполне может присутствовать в названии товара и SQL скрипту не должна мешать.
Проблем с кавычками нет, надо чтобы на сервере (интернет магазин) строка на клиенте была: Апельсин "Turk",
а записана на сервере в таком виде: Апельсин "e;Turk"e;.
Проблема в том, что при запуске клиента загружается строка из сервера!
Идет двухсторонний обмен изменений, можно поменять строку на сервере и она должна загрузится на клиента: Апельсин "Turk"
и наоборот, на клиенте изменяется строка и она загружается на сервер с таком виде: Апельсин "e;Turk"e;
Надо, чтобы на клиенте в процессе любого обращения к базе при выводе строки, поиске и т.п. ("e;) заменялась на (")
Где сделать вставку в MAV чтобы можно было "обрабатывать" получаемые или отправляемые строки в нужном формате.
SELF.Db.GetQUOTE_CHAR()
Это что за зверь такой
Как им воспользоваться , если он решает проблему указанную выше, подробнее пожалуйста.
Re: Замена кавычки(") на спецсимвол (")
Добавлено: 14 Февраль 2013, 14:59
Admin
gopstop2007 писал(а):Проблем с кавычками нет, надо чтобы на сервере (интернет магазин) строка на клиенте была: Апельсин "Turk",
а записана на сервере в таком виде: Апельсин "e;Turk"e;
Проблема в том, что при запуске клиента загружается строка из сервера!
В web движке при выводе данных нужно использовать
htmlspecialchars()
+ смотрим:
http://www.php.su/functions/?htmlentities
http://www.php.su/functions/?html-entity-decode
А вообще все равно проблемы не понял.
Вы должны хранить данные в таблице в нормальном виде.
В таблице не должны присутствовать "e;
Re: Замена кавычки(") на спецсимвол (")
Добавлено: 14 Февраль 2013, 14:59
Admin
Если у вас есть Web программер то он что то ламерит... Если это вы то читайте... разберетесь.
Re: Замена кавычки(") на спецсимвол (")
Добавлено: 14 Февраль 2013, 15:28
gopstop2007
ну уж лучше mysqli_real_escape_string, чем htmlspecialchars баловаться... + мы используем готовый движок которые требует " и переписывать весь движок нет смысла, с учетом того что данная программа должна работать со всеми похожими сайтами без телодвижений на самих сайтах... php движок в базу пишет правильно как надо... прикладная программа на прямую общается с базой, и я никак не могу повлиять на те данные которые она вливает в мускуль...
Re: Замена кавычки(") на спецсимвол (")
Добавлено: 14 Февраль 2013, 16:02
Admin
gopstop2007 писал(а):ну уж лучше mysqli_real_escape_string
Лишь бы вам было хорошо
Re: Замена кавычки(") на спецсимвол (")
Добавлено: 15 Февраль 2013, 9:50
Andrew™
gopstop2007 писал(а):
SELF.Db.GetQUOTE_CHAR()
Это что за зверь такой
Как им воспользоваться , если он решает проблему указанную выше, подробнее пожалуйста.
для работы с БД используем курсорные объекты
MAVSelect MAVUpdate MAVDelete MAVExecute, все они наследники от
MAVCursor, у которого есть
Db.GetQUOTE_CHAR() который вернёт нужный СИМВОЛ
Re: Замена кавычки(") на спецсимвол (")
Добавлено: 16 Февраль 2013, 20:30
gopstop2007
для работы с БД используем курсорные объекты MAVSelect MAVUpdate MAVDelete MAVExecute, все они наследники от MAVCursor, у которого есть Db.GetQUOTE_CHAR() который вернёт нужный СИМВОЛ
Андрей, пожалуйста пример в пару строк работы Db.GetQUOTE_CHAR(), а то описания нет
Набрел на
http://forum.clarionlife.net/phpbb/view ... hook#p7505 , можно скинуть ссылку на пример работы, а то ссылка на
http://mavcla.arsis.ru/Download/w_hook.rar не работает. Я так понимаю, с помощью хуков тоже можно решить проблему?
Re: Замена кавычки(") на спецсимвол (")
Добавлено: 18 Февраль 2013, 16:15
gopstop2007
У кого есть - поделитесь пожалуйста. Спасибо.