我正在将 Coldfusion 网站转换为 PHP。我有一个查询,它查看逗号分隔的数字列表,看看是否有匹配项,然后做出相应的响应。这是我目前使用的 where 语句。
WHERE (`link_issue_category`.`Category_ID` IN (<CFQUERYPARAM value="#Category_id#" list = "yes">)
我如何用 PHP 编写这个?
我正在将 Coldfusion 网站转换为 PHP。我有一个查询,它查看逗号分隔的数字列表,看看是否有匹配项,然后做出相应的响应。这是我目前使用的 where 语句。
WHERE (`link_issue_category`.`Category_ID` IN (<CFQUERYPARAM value="#Category_id#" list = "yes">)
我如何用 PHP 编写这个?
仅供参考 CF 只是创建一个新的准备好的语句,其数量与?
幕后列表的长度相同。
因此,如果您想在 PHP 中实现相同的行为,那真的不会那么难。只需动态创建一个新的准备好的语句,并相应地绑定它们。
PHP 准备语句: http: //php.net/manual/en/pdo.prepared-statements.php
但是,您可以仅使用正则表达式将值列表验证为数值和逗号,并将变量用作 SQL 语句的一部分。
CFQUERYPARAM 对值进行一些验证,并在可能的情况下设置绑定参数。假设您已经对其进行了验证/清理,您可能只需将值嵌入到 SQL 中。list 参数指定这是一个逗号分隔的列表。您应该能够将此列表直接插入到查询中,具体取决于值类型。
"WHERE (`link_issue_category`.`Category_ID` IN ($category_id)";
如果列表中的值是字符串,则可能需要在它们进入查询之前将它们包装在 qoutes 中。