【问题标题】:array_intersect_key PHP array with MYSQL databasearray_intersect_key PHP 数组与 MYSQL 数据库
【发布时间】:2010-01-27 15:55:15
【问题描述】:

我在 PHP 中有一个简单的数组,比如说

[1, 2, 4, 5, 6, 7]

我想查询一个 MYSQL 数据库

[1, who]
[2, where]
[3, some]
[6, there]
[9, too]

我只希望接收 PHP 数组和数据库索引列之间的交叉行。所以这会导致

[1, who]
[2, where]
[6, there]

有什么想法吗?谢谢!

【问题讨论】:

    标签: php mysql intersection


    【解决方案1】:

    你想要 sql in 关键字

    SELECT id, title FROM tablename WHERE id IN (1, 2, 4, 5, 6, 7)
    

    您可以使用以下方法准备数字列表:

    $nums = array(1, 2, 4, 5, 6, 7)
    $sql = 'SELECT id, title FROM tablename WHERE id IN (' . implode(',', $nums) . ')';
    

    编辑:您可以确保您的输入仅包含带有array_filter 的数字:

    $nums = array_filter($nums, 'is_numeric');
    

    【讨论】:

    • 可能想在某处添加关于 SQL 注入危险的巨大免责声明......
    • 非常感谢你们两位。我知道 IN 运营商,但你一发布我就知道该怎么做。我也一定会检查注入漏洞。
    • 谢谢,添加了 array_filter 以确保 $nums 只包含数字
    • @Dominic Rodger:我没有看到任何用户输入,所以这里关于 SQL 注入危险的巨大免责声明似乎有点不合适。
    猜你喜欢
    • 1970-01-01
    • 2015-02-02
    • 2014-04-04
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    相关资源
    最近更新 更多