我一直在使用php / mysql一段时间了,我想在程序开始时清理所有我的超级全局,我还没有连接到任何数据库。有没有任何其他PHP定义的函数来使变量sql安全。任何人都可以告诉我为什么在使用mysql_real_escapce_string
之前需要一个活动的mysql连接答案 0 :(得分:3)
我想在程序开始时清理所有超级全局变量。
这不是最好的主意。您应该根据上下文清理变量。如果通过mysql_real_escape_string()
运行所有变量,当您想在SQL上下文之外使用变量时,可能会发现问题。
是否有任何其他PHP定义的函数可以使变量SQL安全?
您可以将绑定参数用于PDO等库。
有人可以告诉我为什么在使用
mysql_real_escape_string()
之前需要有效的MySQL连接吗?
我相信这是因为函数需要知道数据库正在使用的字符集,以便它可以正确转义。
答案 1 :(得分:0)
这个想法是完全错误的。
使用mysql_real_escape_string(),您只能转义SQL字符串。当他们去查询。 任何字符串,不仅是来自请求的字符串。想一想。