Как вставить результат mysql_real_escape_string () в базу данных оракула? - PullRequest
0 голосов
/ 29 марта 2012

Для вставки специальных символов в данные, такие как (, ') и т. Д., Я использую функцию mysql_real_escape_string () и она работает нормально.

Теперь я хочу использовать ту же переменную при вставке значений в Oracle.

$str = 'N.G.Palace\'s Building',
    'xyzcity', '12345678','India','100001',12

Здесь $ str является результатом mysql_real_escape_string (). таким образом, он избегает специального символа. Теперь мой код для оракула выглядит так:

 $qry ="INSERT INTO Ora_table(ship_to_street, ship_to_city,ship_to_country, ship_to_telephone, order_id, record_no) VALUES(".$str);

Так что я сомневаюсь, что Oracle не принимает значения, возвращаемые mysql_real_escape_string, т. Е. Palace's (например, как эта функция mysql присоединяет \ перед 'одинарные кавычки)? Кто-нибудь может мне сказать, как мне использовать эту переменную $ str для вставки данных в Oracle?

Кроме того, я тоже так пытался -:

"q"."'"."c".$str."c"."'"

можем ли мы использовать это для нескольких значений, как в моем случае ... хотя я все еще не могу вставить данные в oracle?

HOW to insert special characters in Oracle db?
like 'SWEET/HOME', 'CROY-BOY' etc. /,-,\ etc.

пожалуйста, скажите мне ..

Ответы [ 2 ]

3 голосов
/ 29 марта 2012

Я настоятельно призываю вас не строить запросы, добавляя строки вместе.Это билет прямо в ад - или в город SQL-инъекций, который на одну остановку раньше.:-) Если серьезно, если вы используете маркеры параметров и привязываете значения к маркерам параметров, вы получаете несколько преимуществ:

  1. Вам не нужно ничего избегать, и
  2. Не беспокойтесь о внедрении SQL.

Делитесь и наслаждайтесь.

0 голосов
/ 29 марта 2012

От: http://www.php.net/manual/en/function.stripslashes.php#94758

function no_magic_quotes($query) {

        $data = explode("\\",$query);
        $cleaned = implode("",$data);
        return $cleaned;
}

// I'm using mysql_escape_string as a simple example, but this function would work for any escaped string.
$query = "It's amazing! Who's to say this isn't a simple function?";
$badstring = mysql_escape_string($query);

echo '<b>Without function:</b> '.$badstring;
echo '<br><br>';
echo '<b>With function:</b> '.no_magic_quotes($badstring);
...