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

发布于 2024-12-10 19:08:44 字数 559 浏览 1 评论 0原文

我正在尝试使用 PHP 和“DB2_exec”(而不是 mysql)对 DB2 数据库(在 iSeries 上)进行 SQL 查询。

我的 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 就会正确呈现。

你能想到我能完成这个任务吗?

史蒂文

I am trying to SQL a DB2 database (on an iSeries) using PHP and "DB2_exec"- not mysql.

I have these characters in my WHERE clause (variable $EncSSN) which cause the SQL statement to stop: ðIn*Éæng “"Ò×ÑRÈ•`

The SQL is constructed as:

select EENUM, EESSN 
from EEMAST 
where EESSN = '$EncSSN'

The field in the table EESSN contains encrypted values.
- I get no errors and no log entries. The html renders a blank page.
- I have tried replacing (str_replace) quotes, single quotes, period, etc with escape character '\'
- I can't use mysql_real_escape_string because I am loading the db2_connect resource.

If I change the SQL statement above's where to select a value from a different field, my html is rendered properly.

Can you think of anyway I can accomplish this?

Steven

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

半衾梦 2024-12-17 19:08:44

准备 SQL 并使用数组方法设置 where 子句的参数。切勿尝试通过字符串函数构建 SQL 查询。

Prepare the SQL and set the parameter for where clause using the array approach. Never ever attempt to build SQL queries by string functions.

装纯掩盖桑 2024-12-17 19:08:44

尝试使用 addslashes() 函数 http://php.net/ Manual/en/function.addslashes.php

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

您也可以将 sql 放入存储过程中,但参数值可能会遇到相同的问题,需要尝试上述方法之一。

try the addslashes() function http://php.net/manual/en/function.addslashes.php

or heredoc or nowdoc syntax
http://php.net/manual/en/language.types.string.php

you could also put the sql in a stored proc, but you may have the same issues for the parameter value and need to try one of the above.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文