可能重复:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
我试图通过php从我的sql表加载/生成存储在单元格内的链接。 但是我收到了一个错误:
Warning: simplexml_load_file() expects parameter 1 to be string, resource given in ... on line 78
你能告诉我我哪里做错了吗?
这是我的代码:
$sql = "SELECT link FROM previousbroadcast WHERE id=21";
$result=mysql_query($sql);
$xml = simplexml_load_file($result);
答案 0 :(得分:0)
$ result变量是SQL结果集,而不是字符串。您必须使用类似mysql_fetch_array的函数来从SQL结果中获取各列的值。
也许是这样的:
$sql = "SELECT link FROM previousbroadcast WHERE id=21";
$result=mysql_query($sql);
while($row = mysql_fetch_array($result)){
$xml = simplexml_load_file($row[0]);
break;
}
答案 1 :(得分:0)
mysql_query返回一个语句句柄。您必须从该句柄中获取一行并提取值:
$sql = "SELECT ..."
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($result);
$xml = simplexml_load_file($row['link']);
答案 2 :(得分:0)
$result
不是表中链接字段的值,而是ressource id。你想要像
$sql = "SELECT link FROM previousbroadcast WHERE id=21";
$ressource=mysql_query($sql); // remember, it's just the ressource
$result = mysql_fetch_array($ressource); // let's get this into an associative array
$xml = simplexml_load_file($result['link']); // and use the respective field in the array to fetch the XML
请注意,这是非常简单的代码,您应该在尝试加载之前确保该文件存在...
答案 3 :(得分:0)
您需要先获得结果。在$result
变量中,您只存储了一个SQL资源。要获取查询的实际内容,请使用$result_array = mysql_fetch_array($result)
,它将返回包含数据的数组。然后,您可以调用simplexml_load_file($result_array[0])
函数。
答案 4 :(得分:0)
mysql_query返回一个资源。使用mysql_fetch_array来获取内容。他们在文档中有例子。
答案 5 :(得分:0)
$sql = "SELECT link FROM previousbroadcast WHERE id = '21'";
$result = mysql_query($sql);
if(mysql_num_rows($result) >= 1) {
$row = mysql_fetch_array($result);
$xml = simplexml_load_file($row['previousbroadcast']);
}
首先,您应该使用单引号(')封装SQL参数。其次使用mysql_query只返回一个句柄,你需要使用mysql_fetch_array()实际生成该结果的数组。您还应该添加一些错误捕获,如上所示。