我有一個串1組是..我有一個數組,並且不能使用內爆()來查詢
$str = RP-01,RP-11,RP-12,RP-20,RP-75,RP-92
,然後我有改變刺在數組中是這樣準備查詢的MySQL通過使用內爆()
$final = (explode(",",$str));
Array ([0] => RP-01 [1] => RP-11 [2] => RP-12 [3] => RP-20 [4] => RP-75 [5] => RP-92)
$result = mysql_query("SELECT report.report_id, report_year, report_status, report_type, teacher_name, abstract, report_position, report_name,
GROUP_CONCAT(student_name ORDER BY student_name ASC SEPARATOR ', ') AS student_name
FROM student RIGHT JOIN report ON student.report_id = report.report_id
WHERE report.report_id IN (".implode(',', $final).") ");
的最後我嘗試使用破滅()在MySQL查詢和最後的結果仍然是
mysql_fetch_array() expects parameter 1 to be resource, boolean given in ....
in line : while($row = mysql_fetch_array($result)){ ..}
爲什麼總是發生了。
謝謝所有人。
字符串文字需要在SQL查詢中引用,但是你所有的implode正在做的是用一個逗號分隔它們,而不加引號:'IN(RP-01,RP-11,RP-12)'是無效的SQL那些是列名而不是值),應該是'IN('RP-01','RP-11','RP-12')' –
現在你不應該使用舊的,不推薦使用的MySQL接口,但是更新您的代碼以使用MySQLi或PDO –
我可以在數組的所有成員中添加引號並使用implode()。 – Phatter