我正在尝试使用PHP和“DB2_exec”来SQL SQL数据库(在iSeries上) - 而不是mysql。
我的WHERE
子句(变量$EncSSN
)中有这些字符导致SQL语句停止:ðIn*Éæng
“”Ò×ÑRÈ•`
SQL构造为:
select EENUM, EESSN
from EEMAST
where EESSN = '$EncSSN'
表EESSN中的字段包含加密值。 - 我没有错误,没有日志条目。 html呈现一个空白页面。 - 我尝试用转义字符'\'替换(str_replace)引号,单引号,句点等 - 我无法使用mysql_real_escape_string,因为我正在加载db2_connect资源。
如果我更改上面的where
上面的SQL语句以从其他字段中选择一个值,我的html就会正确呈现。
你能想到我能做到这一点吗?
史蒂芬
答案 0 :(得分:2)
Prepare SQL并使用数组方法为where子句设置参数。永远不要尝试通过字符串函数构建SQL查询。
答案 1 :(得分:0)
尝试addslashes()
函数http://php.net/manual/en/function.addslashes.php
或heredoc
或nowdoc
语法
http://php.net/manual/en/language.types.string.php
你也可以将sql放在存储过程中,但是你可能对参数值有相同的问题,需要尝试上面的一个。