2012-10-08 36 views
1

我想查詢數據庫時遇到問題,在這種情況下,我想使用IN()mysql函數通過數組中的值字段搜索數據。如何解析數組到MYSQL IN()?

比如我從PHP

$data = array(1,2,3,4); 

陣列,這是我的查詢代碼來選擇數據的Employee表

$query = 'SELECT * FROM employee_tbl 
    -> WHERE daily_typing_pages IN ' .$data.; 

當我執行的代碼我有這樣

錯誤
Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Array 
SELECT * FROM employee_tbl 
     -> WHERE daily_typing_pages IN Array; 

我認爲,錯誤是因爲數組讀取爲字符串,並不解析爲這種格式(1,2,3,4)

我該如何轉換爲該格式? 有什麼建議嗎?

回答

1

使用implode()以字符串的形式創建實際的以逗號分隔的項目列表。

$query = 'SELECT * FROM employee_tbl 
    -> WHERE daily_typing_pages IN (' . implode(",", $data) . ")"; 
+0

只是現在我固定喜歡你代碼:) – viyancs

1

試試這個代碼,使用implode()數組轉換成字符串

$query = "SELECT * FROM employee_tbl 
     -> WHERE daily_typing_pages IN (".implode(',',$data).") "; 
1

使用implode()

$x = array(1,2,3,4); 
$y = implode(',',$x); 
1

嘗試,

$data = array(1,2,3,4); 
$ids = join(',',$data); 
$sql = "SELECT * FROM employee_tbl WHERE daily_typing_pages IN ($ids)";