如何从sql表PHP加载存储在单元格中的链接

时间:2011-08-25 18:11:07

标签: php sql

  

可能重复:
  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);                            

6 个答案:

答案 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()实际生成该结果的数组。您还应该添加一些错误捕获,如上所示。