代码之家  ›  专栏  ›  技术社区  ›  xkeshav

当我们提供一个字段的多个值时如何获取数据

  •  1
  • xkeshav  · 技术社区  · 14 年前

    我在一个字符串中有3个ID:

      let $x="6,3,5"
    

    我想从 tbl_color 哪里颜色 id

    6, 3和5。

    我提出了这个问题,但不起作用。这是怎么回事?

    $sql=" SELECT * FROM tbl_color WHERE color_id IN(".explode(',',$x).")
    

    请提出正确的问题

    3 回复  |  直到 8 年前
        1
  •  5
  •   AJ.    14 年前

    explode() 获取字符串并将其转换为数组。您已经有了一个字符串。您只需更改您的语句,并在字符串中包含$X即可。你不需要引爆它。


    更新:

    根据您的意见,我将这样做:

    $x="3,4,5";
    $sql=" SELECT * FROM tbl_color WHERE color_id IN(".$x.");";
    

    HTH

    AJ

        2
  •  1
  •   Doug Neiner    14 年前

    您正在将数组与字符串连接起来。不需要爆炸:

    $sql = "SELECT * FROM tbl_color WHERE color_id IN ($x)";
    

    一个完整的示例,假设您从用户处获取输入,或者将输入从浏览器发送到服务器:

    $x = $_GET['colors']; // 6,3,5
    $x = mysql_real_escape_string( $x ); // Prevent SQL Injection attack
    $sql = "SELECT * FROM tbl_color WHERE color_id IN ($x)";
    
        3
  •  0
  •   dplante Tschallacka    11 年前

    如果$X是一个字符串,那么您不需要使用explode,只需使用它

    $sql="SELECT * FROM tbl_color WHERE color_id IN($x)";