0

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

我想要的是:

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

如果网络服务看起来像这样:

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

有可能还是有更好的方法,可以说我会发送一个数组,那么我将如何编写php webservice?

4

3 回答 3

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解码该数据并在查询中使用它。

于 2013-09-02T09:42:47.593 回答
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);
?>
于 2013-09-02T09:44:24.663 回答
0

像这样试试

要么是数字(1,2,3,...)

或 (aaa@domain.com,bbb@domain.com,ccc@domain.com,...)

除了 ('1','2','3') 和 ('aaa@domain.com','bbb@domain.com','ccc@domain.com') 之外的 sql 查询

网址:

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')
于 2013-09-02T09:49:38.873 回答