本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
我运行此脚本时收到以下消息:
警告:mysql_fetch_row()期望参数1是资源,第12行的/var/www/html/toolkit/routing.php中给出了字符串
我在mysql控制台中运行了查询,并打印出正确的行。 不知道为什么我不能让它出现在PHP?
routing.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:
//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");
?>
dupe of stackoverflow.com/
连接到数据库时可能会出错。在这种情况下,您也可以收到此错误
mysql_fetch_row接受游标并返回该游标中的下一行。 你想给它一个字符串。 你错过了一步。
您必须先执行该查询:
$cursor = mysql_query($searchroute); // for example
$result = mysql_fetch_row($cursor);
当我实现时,我得到"数组"..但没有错误。
因为它返回一个数组。 用print_r输出。
工作得很好。 谢谢!
您必须先执行查询才能获取结果:
$searchroute ="SELECT * ...";
$results = mysql_query($searchroute);
$row = mysql_fetch_row($results);
当我实现时,所有上述解决方案都返回"Array"但没有错误。
$db = new MySQL(true, DB_DATABASE_ROUTING, DB_SERVER, DB_USER , DB_PASS);
那应该是MySQLi吗? mysql _ *()函数没有OOP接口。 你将mise mysqli和mysql调用,这是不受支持的。 它们在内部完全相互独立,并且一个db句柄或结果语句在另一个中不可用。
必须在mysql_query之后调用mysql_fetch_row,不能将查询传递给fetch行
- 参见PHP手册