当执行这个查询时,我得到了预期的响应(通过ajax)。它起作用了。
$stmt = $pdo->prepare("SELECT item_location AS Location, users_description AS Description, price AS Price FROM sale_items WHERE item_type IN ($cs_vals)”);
但当我向where子句添加另一个表列名时,如下所示:
$stmt = $pdo->prepare("SELECT item_location AS Location, users_description AS Description, price AS Price FROM sale_items WHERE (item_type, map_region) IN ($cs_vals)”);
..我在控制台中收到一条“json.parse:unexpected character..”消息,但我的网页中没有显示任何内容。为什么会这样?我做错什么了。提前谢谢你的帮助。顺便说一句,$cs\u vals是逗号分隔的值列表,格式为('a'、'b'、'c'…)。这个逗号分隔的列表是由
$cs_vals = str_repeat('?,', count($arr) - 1) '?';
$arr变量是从用户生成的表单中提取的非空值数组。
2条答案
按热度按时间7dl7o3gd1#
我想你应该知道
您必须一次检查一个:
除非你想在数组中找到这个组合。
qltillow2#
你用
EXISTS
而不是$cs_vals
您可以使用UNION
这样就可以验证元组是否与列表匹配。sql演示
您也可以在中使用,但需要与元组进行比较,如下所示: