0

我正在尝试在我的数据库中的表中查询 home_team 和 away_team 列都包含数组中的值的行。然而,没有这样的运气。我的代码如下。

$new_array = array();

for($i=0;$i<count($ncaa);$i++)
{
//  Since some of the values in this array contain apostrophes, escape each value 
$new_array[$i] = mysql_real_escape_string($ncaa[$i]);   
}

$list = join(",", $new_array);
$query = "SELECT * 
     FROM ncaa_games
     WHERE game_date_int >= '".$limit."' 
     AND (home_team = '".mysql_real_escape_string($team)."' OR away_team = '".mysql_real_escape_string($team)."') 
     AND home_team IN (".$list.")
     AND away_team IN (".$list.")
     ORDER BY game_date_int ASC 
     LIMIT 1";

$next = mysql_query($query)or die(mysql_error()); 

我不断收到一条错误消息:“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在“UTSA Roadrunners”附近使用的正确语法)和 away_team IN(奥尔巴尼大丹犬,宾厄姆顿熊'在第 5 行"

我有一种感觉,这可能是相当简单的事情。但是,它仍然设法躲避我。有任何想法吗?

谢谢,

4

1 回答 1

2
$list = join(",", $new_array);

不会用引号将团队括起来。即你有:

away_team IN (Albany Great Danes,Binghamton Bears)

当这应该是:

away_team IN ('Albany Great Danes','Binghamton Bears')

尝试使用: $list = join("','", $new_array); 并具有:

 AND home_team IN ('".$list."')
 AND away_team IN ('".$list."')

(确保$list不为空)。

于 2013-01-06T21:43:21.633 回答