【发布时间】:2011-09-05 17:09:53
【问题描述】:
所以我相当偏执,将mysql_real_escape_string() 与PDO 一起使用。我实际上不在 PDO 中使用准备好的语句,所以我必须清理输入。
在我自己的服务器上托管时,我会在本地机器上创建一个非特权用户,这样mysql_real_escape_string() 就不会失败并清空我的变量(嘿,现在这是清理!)。我意识到这是一个非常失败的解决方案,因为如果数据库没有匹配的字符集,那么根本没有必要进行消毒,但它在过渡期间有效。
现在在我的新主机上,我无法为数据库创建一个无密码、无特权的用户...并且mysql_real_escape_string() 失败,因为本地计算机上没有 mysql 服务器。我无法编辑 php.ini 来设置默认数据库的主机名/用户/密码。
我能做什么?
在我写这篇文章时进行头脑风暴,我想知道 php 是否允许运行时更改配置......也许...... hrm。
编辑:嗯...ini_set()? :O
【问题讨论】:
-
你为什么不想使用准备好的语句?
-
主要是懒惰。我习惯于将变量直接扔到 SQL 查询中(当然是在经过清理之后)。我意识到,准备它们不会那么难。
标签: php mysql security pdo mysql-real-escape-string