2011-08-18 49 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句柄或结果语句在另一个中不可用。

相关问题