【发布时间】:2012-04-13 01:02:25
【问题描述】:
为了在 (,') 等数据中插入特殊字符,我正在使用 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.
请告诉我..
【问题讨论】:
-
在为 oracle 数据库构建 SQL 查询时,为什么要使用 MySQL 转义函数?!
-
Bcz,我首先将数据插入 Mysql 数据库并使用相同的变量通过 PHP 插入 Oracle。
-
当您从 MySQL 数据库中读取数据时,您将获得没有任何转义的原始字符串 - 请记住,转义已完成,因此查询不会中断;或者用伪代码说:
select(insert(escape(str))) == str -
好的...但是我的疑问是如何处理单引号问题,例如-('NGPalace's Building','xyzcity', '12345678','India','100001',12) 现在看看第一个值...它将如何解释 NGPlace 的 Building 只是一个值...因为 Palace 中有单引号,所以这就是为什么我无法将数据插入到 oracle 中。
-
好吧,当将它插入到您的 oracle DB 时,您需要使用 php oracle 绑定中的适当函数再次对其进行转义。 或者像@BobJarvis 建议的那样做,正确分离查询和数据!
标签: mysql oracle insert quotes apostrophe