如果我想从我的php webservice获取值,该值连接到具有多值字符串的mysql数据库...我应该如何在url中编写它。例如。
我想要的是什么:
login?next=initial_page?email=(1,2,3)
如果webservice看起来像这样:
select * from login where email in (('".$_GET["email"]."'))
是否有可能或有更好的方法,让我说我会发送一个数组,那我怎么写php webservice呢?
答案 0 :(得分:1)
1)如果值为integer
,则以这种方式传递
login?next=initial_page&email=1,2,3
^ // here it should be & not ?
查询将是
$sql = "select * from login where email in (".$_GET["email"].")";
注意:在将字符串嵌入查询之前转义该字符串,以防止SQL injection
。
2)另一种方法是,您可以JSON
格式和PHP
结束使用json_decode
发布数据,以解码该数据并在您的数据中使用它查询。
答案 1 :(得分:1)
您在每个输入之间使用&
字符,如下所示:
login.php?next=initial_page&email=(1,2,3)
如果需要,您可以稍后将其拆分:
<?php
// url= test.php?inputs=1,2,3
$myVar=$_GET['inputs'];
print_r($myVar);
$myArray=explode(',', $myVar);
print_r($myArray);
?>
答案 2 :(得分:0)
试试这个
要么是数字(1,2,3,...)
或(aaa @ domain.com,bbb @ domain.com,ccc @ domain.com,...)
sql查询除了('1','2','3')和('aaa@domain.com','bbb @ domain.com','ccc @ domain.com')
网址:
login?next=initial_page&email=1,2,3
or
login?next=initial_page&email=aaa@domain.com,bbb@domain.com,ccc@domain.com
^ //it should be &
在像
这样的php文件中获取它$email = $_GET['email'];
$email_array = explode(",",$email);
$email = implode("','",$email_array);
select * from login where email in ('$email')