有没有办法在没有新的真实PDO对象的情况下引用字符串


Is there any way to quote string without new a real PDO object?

我要写一个SQL泡泡器来玩。

为了保证查询安全,我必须引用值,例如,值"12"3"

应该是"12''"3",我可以使用mysql_real_escape_string('12"3')来做到这一点。 但是,这个函数将从PHP中删除,所以,我现在正在使用PDO。

但是,如果我想用 pdo 引用字符串,我有一个新的真正的 pdo 对象,如下所示:

$db = new PDO($connectString);

然后,我这样引用它:

$db->quote('12"3');

这意味着每次引用字符串时我都必须连接数据库。但我真的不想这样做。我只想构建一个查询字符串,没有别的。

我只想要一个没有数据库连接的函数或方法能够替换mysql_real_escape_string()

那么,有没有办法在没有新的PDO对象的情况下引用字符串? 或者另一种在没有连接的情况下引用字符串的方法?

对于非标准设置,在不了解如何使用字符串(包括知道数据库服务器和连接将使用哪种编码)的情况下转义字符串可能会失败。这就是为什么如果没有数据库,mysql_real_escape_string()实际上会尝试建立与数据库的连接,如果不成功,它将引发E_WARNING

换句话说:您需要了解有关数据库的一些信息,以便正确转义字符串。这就是您需要连接的原因。

你将以

非常错误的方式编写一个SQLBuilder。实际上,出于某种原因,您选择了石器时代的技术来构建。

查询生成器实际要做的是为实际数据构建带有占位符的查询。
而查询运行器必须接受查询旁边的数据数组。

就这么简单。