where子句中的Php / SQL / DB2特殊字符

时间:2011-10-19 15:39:36

标签: php db2

我正在尝试使用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就会正确呈现。

你能想到我能做到这一点吗?

史蒂芬

2 个答案:

答案 0 :(得分:2)

Prepare SQL并使用数组方法为where子句设置参数。永远不要尝试通过字符串函数构建SQL查询。

答案 1 :(得分:0)

尝试addslashes()函数http://php.net/manual/en/function.addslashes.php

heredocnowdoc语法 http://php.net/manual/en/language.types.string.php

你也可以将sql放在存储过程中,但是你可能对参数值有相同的问题,需要尝试上面的一个。