如何在执行php请求时传递多参数字符串

时间:2013-09-02 09:38:27

标签: php android mysql web-services

如果我想从我的php webservice获取值,该值连接到具有多值字符串的mysql数据库...我应该如何在url中编写它。例如。

我想要的是什么:

login?next=initial_page?email=(1,2,3)

如果webservice看起来像这样:

select * from login where email in (('".$_GET["email"]."'))

是否有可能或有更好的方法,让我说我会发送一个数组,那我怎么写php webservice呢?

3 个答案:

答案 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')