2013-01-06 49 views
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()); 

我一直在收到錯誤消息讀書「OU在您的SQL語法錯誤;檢查對應於您的MySQL服務器版本正確的語法使用近'UTSA走鵑手冊」)和AWAY_TEAM IN(奧爾巴尼大丹犬,賓厄姆頓熊」第5" 行

我有一種感覺,這可能是一些比較簡單的,但是,它仍然設法躲避我。任何想法?

感謝,

蘭斯

+0

是否有可能game_date_int是一個int,並且您試圖將它傳遞給一個字符串? – pzirkind

+0

這是什麼? 'AND(home_team ='「.mysql_real_escape_string($ team)。」'OR away_team ='「.mysql_real_escape_string($ team)。'')' –

回答

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

不會把團隊放在引號中。即您有:

away_team IN (Albany Great Danes,Binghamton Bears) 

當這應該是:

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

嘗試使用: $名單=加入( 「 ''」,$ new_array); 具有:

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

(確保$list不爲空)。

+0

謝謝了。我有一種感覺是一個簡單的語法錯誤。一些微不足道的東西。 – Lance

+0

@蘭斯沒問題。一套新的眼睛總是有助於:) – Jim

相關問題