我的网址如下:website.com?id = 1,2
$urlParam = $_GET['id'];
echo $urlParam;
$ urlParam按预期返回1,2。但是....我正在尝试用它来查询一个mysql数据库(我认为这是我正在做的正确的短语??)。这有效:
$query->where(array(
'id:IN' => array(1,2)
));
这不起作用:
$query->where(array(
'id:IN' => array($urlParam)
));
我不明白!为什么??另外......我几乎不知道自己在做什么,所以我确信有更有效的方法可以做到这一切,但这是我能够想到的。
答案 0 :(得分:3)
因为1,2
不被MySQL视为逗号分隔值。它将其视为一个值为" 1,2"的字符串。您没有与该值匹配的行,因此您没有得到任何结果。
See this answer了解如何解决此问题。
答案 1 :(得分:1)
你可以设置它,而不是字符串,它是一个数组。 即
<form method="GET">
<input name="test[]" value="1" />
<input name="test[]" value="2" />
<input type="submit">
</form>
<?php
print_r($_GET);
?>
这将在您的网址中显示为:
www.myurl.com?test%5B%5D=1&test%5B%5D=2
答案 2 :(得分:1)
要将字符串转换为数组,您可以使用explode函数:
$query->where(array(
'id:IN' => explode(',',$urlParam)
));