2012-02-07 92 views
1

我试图移植一个与MySQL一起使用的php文件。我的目标是让这个文件与Oracle而不是MySQL一起工作。我已经完成了连接字符串的切换。我现在坚持寻找为Oracle等效命令:Oracle中“mysql_real_escape_string”的等效命令是什么?

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的准备或报价时,我得到上述错误。

+4

当你在它,你可以修改它使用参数化查询,而不是'* _escape()'荷兰国际集团,喜欢它的 – 2012-02-07 17:48:59

+0

你用什么来连接到Oracle 90年代? ODBC? PDO? – Mchl 2012-02-07 17:53:51

+0

我正在使用'Zend_Db :: factory('PDO_OCI''连接 – amlane86 2012-02-07 17:58:07

回答

5

由于您正在使用PDO连接到Oracle,因此该功能将为PDO::quote。请注意0​​围绕字符串引号,而mysql_real_escape_string不引用。

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

如果您正在使用此功能来构建SQL语句,你 强烈建议使用PDO ::准备()准备SQL语句 与绑定参数,而不是使用PDO ::报价( )将 用户输入内插到SQL语句中。因为服务器端和客户端都可以缓存查询的编译形式 ,所以参数绑定 参数的准备语句不仅更便携,更方便,不受SQL注入的影响,而且执行速度往往快于插入查询。

+1

+1准备好的语句 – TimWolla 2012-02-07 18:12:56

相关问题