2012-01-15 162 views
-2

當我將工作代碼從本地移動到我的專用主機時,沒有任何查詢正在工作,但是我能夠連接到數據庫。我知道這應該是一些微不足道的事情,但從上個小時以來我無法解決這個問題。Mysql查詢不起作用

這裏是我的代碼:

<?php 
set_time_limit(0); 
$DbCon = mysql_connect('localhost:1023','username','password'); 
mysql_select_db('dbname', $DbCon); 
if (!$DbCon) 
{ 
die('Could not connect: ' . mysql_error()); 
} 
else 
{ 
echo("wait...\n"); 
    echo("Caching name...\n"); 
$query0="SELECT * FROM sometablename2"; 
$Result0 = mysql_query($query0,$DbCon); 
$anarray=array(); 
    $anotherarray=array(); 
while($records0 = mysql_fetch_array($Result0)) 
{ 
     do something 
} 

} 

輸出我得到的是: 等待... 緩存名稱... PHP的警告:mysql_fetch_array()預計參數1是資源,布爾在給定的/path/to/php/file/code.php在線42 PHP警告:mysql_free_result()期望參數1是資源,布爾在/path/to/php/file/code.php在線56給出

因此,很顯然,我能夠連接到數據庫,但沒有來自此查詢的輸出。我已經在數據庫中運行相同的查詢,它正在工作。 任何方向將是非常有益的。

+0

從該查詢返回的東西嗎? – Kamil 2012-01-15 11:51:56

+0

這就是錯誤,我試圖選擇整個表,但是沒有任何東西從這個查詢返回。 – ankit 2012-01-15 11:59:40

回答

2

使用mysql_error函數可以找出問題所在。

mysql_query("SELECT * FROM nonexistenttable", $link); 
echo mysql_errno($link) . ": " . mysql_error($link) . "\n"; 

編輯:按下面的評論,也嘗試,例如:

// make foo the current db 
$db_selected = mysql_select_db('foo', $link); 
if (!$db_selected) { 
    die ('Can\'t use foo : ' . mysql_error()); 
} 
+0

這是一個很棒的提示。謝謝。它說數據庫沒有選中,當我檢查使用這個。困惑,因爲我可以看到數據庫,也可以運行查詢too..Also它不會死與mysql_error()..調查更多,將在這裏更新時,當我找到任何東西.. – ankit 2012-01-15 12:31:08

+1

你也應該更新你的代碼,以檢查mysql_select_db是否工作正常,例如 '// make foo the current db $ db_selected = mysql_select_db('foo',$ link); if(!$ db_selected){ die('Can not use foo:'。mysql_error()); }' – 2012-01-15 12:38:27