什么是PDO的real_escape_string()的等价物?

从MySQL库中迁移之后,我正在使用PDO。 我用什么来代替旧的real_escape_string()函数?

我需要逃避单引号,所以他们会进入我的数据库,我认为可能有更好的方法来处理这一点,而不添加斜杠到我所有的string。

有人能告诉我我应该用什么?

您应该使用PDO准备

从链接:

为不同参数值多次发布的语句调用PDO :: prepare()和PDOStatement :: execute(),可以通过允许驱动程序协商查询计划的客户端和/或服务器端caching来优化应用程序的性能,元信息,并通过不需要手动引用参数来帮助防止SQL注入攻击

PDO提供了一个用PDO :: quote()方法取代mysql_escape_string()的替代方法。

以下是PHP网站的摘录:

 <?php $conn = new PDO('sqlite:/home/lynn/music.sql3'); /* Simple string */ $string = 'Nice'; print "Unquoted string: $string\n"; print "Quoted string: " . $conn->quote($string) . "\n"; ?> 

上面的代码将输出:

 Unquoted string: Nice Quoted string: 'Nice' 

使用准备的语句。 那些保持数据和语法分开,这消除了转义MySQL数据的需要。 参见例如本教程 。