0

为了在 (,') 等数据中插入特殊字符,我正在使用 mysql_real_escape_string() 函数,它工作正常。

现在我想在 Oracle 中插入值时使用相同的变量。

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

这里 $str 是 mysql_real_escape_string() 的结果。所以它转义了特殊字符。现在我的 oracle 代码是这样的:

 $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.

请告诉我..

4

2 回答 2

3

我强烈建议您不要通过将字符串附加在一起来构建查询。这是一张直通地狱的门票 - 或者是提前一站的 SQL 注入城。:-) 说真的,但是,如果您使用参数标记并将值绑定到参数标记,您将获得一些优势:

  1. 你不必逃避任何事情,并且
  2. 不用担心 SQL 注入。

分享和享受。

于 2012-03-29T11:46:25.970 回答
-2

来自: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);
于 2012-03-29T11:32:45.407 回答