2014-03-14 190 views
0

我有一個簡單的查詢,它在純環境中工作,但不適用於PHPUnit。適用於PHP,不適用於PHPUnit

下面的代碼,但我不認爲這將是任何用處的:

$a = mysql_query("SELECT id,img FROM images"); 
$b = mysql_fetch_array($a); 

我連接到數據庫。

錯誤是:

mysql_fetch_array() expects parameter 1 to be resource, boolean given. 

錯誤指向的取命令。

+0

檢查,如果你有一個有效的連接,據我知道PHP UNIT我們寫代碼的子文件夾,這將需要做的SQL操作的斷言什麼有效的SQL連接。 –

+0

您還應該使用Mocks進行測試,以便實際上不需要數據庫並控制返回的數據。稍後,可能會添加DBUnit來測試數據庫。 –

+0

可能重複的[mysql \ _fetch \ _array()期望參數1是資源,布爾給出在選擇](http://stackoverflow.com/questions/2973202/mysql-fetch-array-expects-parameter-1-to -be-resource-boolean-given-in-select) –

回答

0

查詢失敗。當查詢失敗時,mysql_query()函數返回false

您應該總是檢查錯誤。當你的代碼不起作用時,你也應該使用read the documentation;它告訴你要尋找什麼。

$a = mysql_query("SELECT id,img FROM images"); 
if ($a === false) { 
    die(mysql_error()); 
} 
$b = mysql_fetch_array($a); 
+1

你也應該從'mysql'切換到'mysqli'函數,因爲mysql函數已被棄用並且被刪除。 – Sven