微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 带有IN子句的MySQL PDO

我正在将我的所有查询切换为PDO格式,而我特别遇到涉及IN()子句的问题.

$nba[0] = "Boston Celtics";
$nba[1] = "New York Knicks";
$nba[2] = "Houston Rockets";

$query = "SELECT game_id
        FROM table
        WHERE date_int >= :date_int 
        AND (home_team = :team OR away_team = :team) 
        AND home_team IN(:list)
        AND away_team IN(:list)
        ORDER BY game_date_int ASC 
        LIMIT 1";               
$stmt = $db->prepare($query);
$stmt->execute(array(':date_int' => $limit,':team' => $team,':list' => implode(',',$nba)));
最佳答案
你可以像这样解决这个问题:

$nba = array();
$nba[0] = "Boston Celtics";
$nba[1] = "New York Knicks";
$nba[2] = "Houston Rockets";

$params = array(':date_int' => $limit,':team' => $team);
$nba_teams = array();
for($i=0;$iarams[':list' . $i] = $nba[$i];
}

$query = "SELECT game_id
    FROM table
    WHERE date_int >= :date_int 
    AND (home_team = :team OR away_team = :team) 
    AND home_team IN(".implode(',$nba_teams).")
    AND away_team IN(".implode(',$nba_teams).")
    ORDER BY game_date_int ASC 
    LIMIT 1";            

$stmt = $db->prepare($query,$params);
$stmt->execute();

尚未测试过,但我想你知道我在尝试什么

原文地址:https://www.jb51.cc/mysql/433446.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐