什么是" mysql_real_escape_string"的等效命令。在Oracle?

时间:2012-02-07 17:47:59

标签: php mysql oracle zend-framework pdo

我正在尝试移植与MySQL一起使用的php文件。我的目标是让这个文件与Oracle而不是MySQL一起使用。我已经切换了所有的连接字符串。我现在很难找到以下的Oracle等效命令:

mysql_real_escape_string($string);

有人可以告诉我它会是什么,或者将我引导到可以告诉我的地方。谢谢!

我尝试了PDO::quotePDO::prepare,并为准备和对象说Call to a member function prepare() on a non-object。这样做的目的是让TightURL直接从我的Web服务器上运行。我的Web服务器使用Oracle,而不是MySQL,所以我不得不将主php文件转换为与Oracle一起使用。

我在使用MySQL的WAMP服务器上尝试过它并且效果很好,但是当我尝试使用Oracle的准备或引用时,我得到了上面的错误。

1 个答案:

答案 0 :(得分:5)

由于您使用PDO连接到Oracle,因此该函数将为PDO::quote。请注意,PDO::quote会在字符串周围放置引号,mysql_real_escape_string则不会。

话虽如此,最好使用预准备语句而不是字符串连接来发出SQL语句。从手册:

  

如果您正在使用此函数来构建SQL语句,那么您就是   强烈建议使用PDO :: prepare()来准备SQL语句   使用绑定参数而不是使用PDO :: quote()进行插值   用户输入到SQL语句中。带有约束的预备语句   参数不仅更便携,更方便,不受SQL的影响   注入,但通常比插值快得多   查询,因为服务器端和客户端都可以缓存已编译的表单   查询。