1

我正在将 Coldfusion 网站转换为 PHP。我有一个查询,它查看逗号分隔的数字列表,看看是否有匹配项,然后做出相应的响应。这是我目前使用的 where 语句。

WHERE (`link_issue_category`.`Category_ID` IN (<CFQUERYPARAM value="#Category_id#" list = "yes">)

我如何用 PHP 编写这个?

4

2 回答 2

0

仅供参考 CF 只是创建一个新的准备好的语句,其数量与?幕后列表的长度相同。

因此,如果您想在 PHP 中实现相同的行为,那真的不会那么难。只需动态创建一个新的准备好的语句,并相应地绑定它们。

PHP 准备语句: http: //php.net/manual/en/pdo.prepared-statements.php

但是,您可以仅使用正则表达式将值列表验证为数值和逗号,并将变量用作 SQL 语句的一部分。

于 2013-09-26T22:17:16.310 回答
0

CFQUERYPARAM 对值进行一些验证,并在可能的情况下设置绑定参数。假设您已经对其进行了验证/清理,您可能只需将值嵌入到 SQL 中。list 参数指定这是一个逗号分隔的列表。您应该能够将此列表直接插入到查询中,具体取决于值类型。

"WHERE (`link_issue_category`.`Category_ID` IN ($category_id)";

如果列表中的值是字符串,则可能需要在它们进入查询之前将它们包装在 qoutes 中。

于 2013-09-26T19:29:56.913 回答