在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
没有找到相关结果
已邀请:
2 个回复
岭取
需要一个现有的经典
数据库连接(可以从中获取字符集信息)以完全安全。 PDO连接将是单独的,可能具有不同的字符集设置,最终导致安全性降低: 在使用mysql_real_escape_string()之前,需要MySQL连接,否则将生成E_WARNING级错误,并返回FALSE。如果未定义link_identifier,则使用最后一个MySQL连接。 一路使用PDO,别无选择。 如果您不想使用准备好的语句,则
应该是正确的函数: 返回带引号的字符串,从理论上讲,该字符串可以安全地传递到SQL语句中。 但是请注意,即使是该功能的手册页也建议改用准备好的语句。
郡豪靠暖