2014-01-13 45 views
1

我必須運行一個查詢,從數組中選擇ID $id ...我試過這個,但它不起作用,我得到這個錯誤:"Notice: Array to string conversion" ...爲什麼?既然你用雙引號(「),則需要關閉它以同樣的方式打開你的查詢字符串php - 查詢選擇數組中的值

$query6 = $mysqli->query("SELECT * FROM album WHERE `id` IN (" . implode(',', 
array_map('intval', $id)) . ");"); 
+1

把你的陣列轉換自成一行。將它作爲一行代碼是不必要的(也可能是有問題的)。 –

回答

0

試試這個。 ,您正在用單引號(')結尾。

試試這個:

$query6 = $mysqli->query("SELECT * FROM album 
     WHERE `id` IN (" . implode(',', array_map('intval', $id)) . ");"); 
+0

它不起作用!現在我沒有得到錯誤,但查詢失敗... 與if($ query6) \t \t echo「ok!」; \t else \t \t echo「error!」;它打印錯誤 – Nicola

+1

你嘗試直接在mysql中運行查詢嗎?像在phpMyAdmin?或者嘗試回顯'mysqli_error()' –

+1

對不起,我無意中加了一個',現在有用! 非常感謝:-) – Nicola

0

目前:

查詢

$query6 = $mysqli->query("SELECT * FROM album WHERE `id` 
IN (' . implode(',', array_map('intval', $id)) . ')';'"); 
+0

您犯了一個錯誤,請嘗試回顯您的查詢 –

+1

@AlirezaFallah謝謝!我編輯了我的答案來修復它。 – showdev

+0

拿回我的投票。但你的答案和我的完全一樣;) –

0

使用此:

$sql = "SELECT * FROM album WHERE `id` IN(".implode(', ', array_map('intval', 
     $id)).");" ; 

$query6 = $mysqli->query($sql);