如何将mysql_real_escape_string()的结果插入到oracle数据库中?

时间:2012-03-29 11:27:36

标签: mysql oracle insert quotes apostrophe

为了在(,')等数据中插入特殊字符,我使用的是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 \(就像这个mysql函数附加\之前'单引号)? 那么有人能告诉我ho9w我可以使用变量$ str将数据插入Oracle吗?

我也是这样尝试的 - :

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

我们可以将它用于多个值,就像我的情况一样......但我仍然无法做到 在oracle中输入数据?

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

请告诉我..

2 个答案:

答案 0 :(得分:3)

我强烈建议您不要通过将字符串附加在一起来构建查询。这是直接到地狱的票 - 或者是SQL注入城市,这是一站前。 :-)严重的是,如果你使用参数标记并将值绑定到参数标记,你会获得一些好处:

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

答案 1 :(得分:-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);