gpt4 book ai didi

php - 如何在 php 中使用 mysql IN() 函数?

转载 作者:行者123 更新时间:2023-11-29 03:49:39 25 4
gpt4 key购买 nike

state 列属于 table2,由以下 varchars 组成:"AL","AK",..在我的 php 代码中,我有以下字符串:$states="AL,AK,AZ,IL";我尝试通过以下方式在 mySQL 查询中使用它:

$query = SELECT * FROM 'table2' WHERE  'state' IN('$states');

它不显示任何结果...这些撇号的正确语法是什么?

最佳答案

它不起作用的原因是因为:

  • IN 语句中的值未用单引号引起来
  • 列名和表名不应该用单引号引起来,因为它们是标识符而不是字符串文字

试试这个,

$individualStates = explode(",", $states);
$newState = "'" . implode("','", $individualStates) . "'";
$query = "SELECT * FROM table2 WHERE state IN($newState)";

解析后,语句的输出是,

SELECT * FROM table2 WHERE state IN('AL','AK','AZ','IL')

作为旁注,查询易受 SQL Injection 攻击如果变量的值(s) 来自外部。请查看下面的文章,了解如何预防它。通过使用 PreparedStatements,您可以摆脱在值周围使用单引号。

关于php - 如何在 php 中使用 mysql IN() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16503610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com