在PDO上使用mysql_real_escape_string(不连接到localhost服务器)

| 所以我很偏执,在PDO中使用
mysql_real_escape_string()
。实际上,我不在PDO中使用准备好的语句,因此我必须清理输入。 当在我自己的服务器上托管时,我将在本地计算机上创建一个没有特权的用户,因此
mysql_real_escape_string()
不会失败并清空变量(嘿,这很简单!)。我意识到这是一个非常失败的解决方案,因为如果数据库没有匹配的字符集,那么根本就没有必要进行清理,但是它可以临时解决问题。 现在,在新主机上,我无法为数据库创建无密码,无特权的用户...,
mysql_real_escape_string()
失败,因为本地计算机上没有mysql服务器。我无法编辑php.ini为默认数据库设置主机名/用户/密码。 我能做什么? 在写这篇文章时集思广益,我想知道php是否允许运行时更改配置...也许...人力资源管理。 编辑:嗯...
ini_set()
? :O     
已邀请:
        像这样混合两个数据库库是一个坏主意,并且可能是不安全的。
mysql_real_escape_string()
需要一个现有的经典
mysql_connect()
数据库连接(可以从中获取字符集信息)以完全安全。 PDO连接将是单独的,可能具有不同的字符集设置,最终导致安全性降低:   在使用mysql_real_escape_string()之前,需要MySQL连接,否则将生成E_WARNING级错误,并返回FALSE。如果未定义link_identifier,则使用最后一个MySQL连接。 一路使用PDO,别无选择。 如果您不想使用准备好的语句,则
PDO::quote
应该是正确的函数:   返回带引号的字符串,从理论上讲,该字符串可以安全地传递到SQL语句中。 但是请注意,即使是该功能的手册页也建议改用准备好的语句。     
        使用PDO的有用之处在于不必担心转义的问题。 我建议您使用“准备”,让PDO做肮脏的工作。     

要回复问题请先登录注册