2011-08-18 92 views
4

可能重複:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select警告:和mysql_fetch_row()預計參數1是資源

我收到的時候我運行此腳本下面的消息:

警告: mysql_fetch_row()期望參數1是資源,字符串在/var/www/html/toolkit/routing.php在線12

我已經在mysql控制檯中運行了查詢並打印了正確的行。不知道爲什麼我不能讓它顯示在PHP中?

routing.php頁:

<?php 
error_reporting(E_ALL); 
////error_reporting(0); 
ini_set('display_errors', 'On'); 
include("db/sbc_config.php"); 
include("db/mysql.class.php"); 
$db = new MySQL(true, DB_DATABASE_ROUTING, DB_SERVER, DB_USER , DB_PASS); 
if ($db->Error()) $db->Kill(); 

     $searchroute = "SELECT * FROM destination_route as d WHERE d.destPrefix='2146811'"; 

     $result = mysql_fetch_row($searchroute); 
    echo $result; 

    ?> 

sbc_config.php:

<?php 
//database server 
define('DB_SERVER', "10.10.1.146"); 

//database login name" 
define('DB_USER', "user"); 

//database login password 
define('DB_PASS', "pasword"); 

//database names 
define('DB_DATABASE_ROUTING', "routing"); 

//smart to define your table names also 
define('TABLE_DESTINATION_ROUTE', "destination_route"); 


?> 
+1

Dupe of http://stackoverflow.com/search?q=%5Bphp%5D%20parameter%20resource%20mysql –

+0

有可能是連接到數據庫的錯誤。在這種情況下,你也可以得到這個錯誤 – Muk

回答

7

mysql_fetch_row需要一個光標,在光標返回下一行。你試圖給它一個字符串。你錯過了一個步驟。

你必須首先執行該查詢:

$cursor = mysql_query($searchroute); // for example 
$result = mysql_fetch_row($cursor); 
+0

我越來越「陣列「,當我實施..但沒有錯誤。 – ipengineer

+1

因爲它返回一個數組。用'print_r'輸出。 – Maerlyn

+0

效果很好。謝謝! – ipengineer

2

你必須執行查詢,然後才能獲取結果:

$searchroute = "SELECT * ..."; 
$results = mysql_query($searchroute); 
$row = mysql_fetch_row($results); 
+0

所有上述解決方案回來時與「數組」,當我執行..但沒有錯誤。 – ipengineer

0

和mysql_fetch_row必須的mysql_query後調用,您可以」 t將查詢傳遞到獲取行 - 見PHP Manual

0
$db = new MySQL(true, DB_DATABASE_ROUTING, DB_SERVER, DB_USER , DB_PASS); 

是否應該是MySQLi? mysql _ *()函數沒有OOP接口。你會被mysqli和mysql調用,這是不支持的。它們在內部完全相互獨立,並且一個db句柄或結果語句在另一箇中不可用。

相關問題