Как вставить специальные символы из PHP в Oracle? - PullRequest
1 голос
/ 29 марта 2012

Я хочу вставить данные со специальным символом в таблицы оракула. Мой код выглядит так:

$query1 ="INSERT INTO sample(po_number , created_at , customer_firstname , customer_lastname , customer_email , 
shipping_description , ship_to_firstname, ship_to_lastname, ship_to_company, ship_to_street, ship_to_city, ship_to_country_id, ship_to_postcode, ship_to_telephone, increment_id) VALUES(".$result_str_order.")"; 


where $result_str_order = '100','21-Mar-2011','Sam','Right','sam.right@sasmple.com','Flight','Samy',
'RTR','SR INC','222,M.G.Bank's-Pipeline/Rd','Newyork','US','411230','999856230','20000507'

Теперь, в случае с ship_to_street, мне нужно вставить 222, M.G.Bank's-Pipeline / Rd но он содержит специальные символы, такие как, ', -, / etc.so как вставить специальные символы в oracle db?

Ответы [ 3 ]

1 голос
/ 29 марта 2012

Единственный символ, который вам нужно экранировать, это ' (потому что вы используете одинарные кавычки в качестве разделителей строк).Так вот:

$query1 ="INSERT INTO sample(po_number , created_at , customer_firstname , customer_lastname , customer_email , 
shipping_description , ship_to_firstname, ship_to_lastname, ship_to_company, ship_to_street, ship_to_city, ship_to_country_id, ship_to_postcode, ship_to_telephone, increment_id) VALUES(".$result_str_order.")"; 


where $result_str_order = '100','21-Mar-2011','Sam','Right','sam.right@sasmple.com','Flight','Samy',
'RTR','SR INC','222,M.G.Bank\'s-Pipeline/Rd','Newyork','US','411230','999856230','20000507'
1 голос
/ 29 марта 2012

Используйте метод Replace (для переменных, а не для всего запроса) для дублирования одинарных кавычек.

0 голосов
/ 23 декабря 2015

Вы можете использовать строку в кавычках, например q '[$ visitComment]' , где $ visitComment - это переменная, содержащая строку специальных символов.

Или вы можете связать извне INSERT INTO sample (column) значения (: columnval);oci_bind_by_name ($ result, ': columnval', $ string);

Где $ result - это $ result = oci_parse ($ conn, $ query);

Примечание: - Это будет работать только дляпеременная, содержащая строку.

...