【问题标题】:How do I pass a multiparameter string when doing a php request执行php请求时如何传递多参数字符串
【发布时间】:2013-09-02 09:38:27
【问题描述】:

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

我想要什么:

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

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

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

有没有可能或者有更好的方法,假设我会发送一个数组,那么我将如何编写php webservice?

【问题讨论】:

    标签: php android mysql web-services


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

    【讨论】:

      【解决方案2】:

      您在每个输入之间使用& 字符,如下所示:

      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);
      ?>
      

      【讨论】:

      • 不知道你是如何获得 1 票的,但你的回答完全没有意义。
      • @YogeshSuthar 哪个部分毫无意义?我解释了如何传递多个参数,以及如何在需要时将单个输入(如1,2,3)转换为数组。
      • OP 希望将该数据放入查询中,而不是将其转换为数组。 OP是说如果他发送数组,他将如何编写php webservice。
      • 他将如何在不带引号的 sql in 语句中使用字符串?还有什么更容易在字符串中的随机位置或数组元素周围插入引号?说真的,你会因为有人赞成我的回答而不是你的回答而生气吗?哇 :)
      • 我不会因为代表点数而烦恼。我说你给出了不同的答案,而不是回答实际问题。
      【解决方案3】:

      这样试试

      要么是数字 (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')
      

      【讨论】:

        猜你喜欢
        • 2017-04-13
        • 2011-06-09
        • 2020-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-18
        相关资源
        最近更新 更多