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

MySQL in()函数中的PHP数组?

  •  0
  • Trez  · 技术社区  · 14 年前

    是否可以在MySQL in()函数中分配php数组?例如

    $numbers = array('8001254656','8886953265','88864357445','80021536245');
    $sql = mysql_query("SELECT * FROM `number_table` WHERE `number` IN ($numbers)");
    

    有什么想法吗?

    2 回复  |  直到 14 年前
        1
  •  4
  •   Sam Minnée    14 年前

    这个代码片段应该可以帮助您,只要number被限制为number。

    <?php
    
    // Generate a filtered comma-separated list of the numeric values in numbers.
    // Non-numeric values might allow for SQL-injection bugs.
    $SQL_numberList = implode(", ", array_filter($numbers, 'is_numeric'));
    $sql = mysql_query("SELECT * FROM `number_table` WHERE `number` IN ($SQL_numberList)");
    

        2
  •  1
  •   Ignacio Vazquez-Abrams    14 年前

    不,使用 implode() 第一。