对可能重复问题的回应 - 请注意,虽然对于某些(可能更有经验的)程序员来说,这似乎是一个重复问题,但对于像我这样的菜鸟来说却不是:-(被指示为重复的问题没有解决我的问题,而接受的答案完美地解决了问题。
根据许多 SO 帖子(包括 this one),为了对数组使用 IN() 运算符,您首先需要将其内爆(从而将数组转换为字符串)。
下面的查询可以正确处理 IN() 语句中的变量,但我似乎无法让它处理内爆数组。
这有效并返回 8 行产品
$colors_VAR = "'Black','Royal_Blue','Dodger_Blue','Red'";
$stmt = $conn->prepare("SELECT * FROM products WHERE products.Color IN ($colors_VAR)");
这不会返回任何结果
$colors_Array = array('Black','Royal_Blue','Dodger_Blue','Red');
$stmt = $conn->prepare("SELECT * FROM products WHERE products.Color IN (' . implode(',', $colors_Array) . ')");
我是一名优秀的程序员,十分优秀!