НАСТОЯЩАЯ СТРОКА В ОРАКУЛЕ - PullRequest
0 голосов
/ 02 октября 2019

Чтобы избежать кавычек для базы данных MySQL, мы используем mysql_real_escape_string. Что если я захочу сделать это для базы данных Oracle на PHP?

Решения, которые я нашел:

  1. '' (двойные кавычки)
  2. q[$string]

1 Ответ

1 голос
/ 02 октября 2019

Решение 1 звучит неправильно (возможно, вы думаете правильно, но написали неправильно);это не двойные кавычки ", а две последовательные одинарные кавычки ''.

Вот пример:

SQL> select
  2    'I''m Little O''Foot'    option_1,
  3    q'[I'm Little O'Foot]'   option_2
  4  from dual;

OPTION_1          OPTION_2
----------------- -----------------
I'm Little O'Foot I'm Little O'Foot

SQL>

Какой бы вариант вы ни выбрали, он будет работать. Второй проще в обращении, потому что вы можете потеряться, если в строке слишком много одинарных кавычек.

Еще один, третий вариант, - объединить CHR(39) (это символ одинарных кавычек);это может быть полезно в инструментах, которые не поддерживают механизм q-цитирования (например, старые Forms Builders):

SQL> select
  2    'I' || chr(39) || 'm Little O' || chr(39) || 'Foot'   option_3
  3  from dual;

OPTION_3
-----------------
I'm Little O'Foot

SQL>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...