如何从sql表PHP加载存储在单元格中的链接
可能重复: 我试图通过php从sql表加载/生成存储在单元格中的链接。 但我得到了一个错误: 警告:simplexml_load_文件要求参数1为字符串,资源在。。。在线78 你们能告诉我哪里做错了吗 这是我的密码:如何从sql表PHP加载存储在单元格中的链接,php,sql,Php,Sql,可能重复: 我试图通过php从sql表加载/生成存储在单元格中的链接。 但我得到了一个错误: 警告:simplexml_load_文件要求参数1为字符串,资源在。。。在线78 你们能告诉我哪里做错了吗 这是我的密码: $sql = "SELECT link FROM previousbroadcast WHERE id=21"; $result=mysql_query($sql); $xml = simplexml_load_file($result);
$sql = "SELECT link FROM previousbroadcast WHERE id=21";
$result=mysql_query($sql);
$xml = simplexml_load_file($result);
$result变量是SQL结果集,而不是字符串。您必须使用类似mysql\u fetch\u 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;
}
mysql\u查询返回一个语句句柄。您必须从该句柄获取一行并提取值:
$sql = "SELECT ..."
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($result);
$xml = simplexml_load_file($row['link']);
$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
请注意,这是一段非常简单的代码,在尝试加载该文件之前,您应该确保该文件存在…您需要首先获得结果。在$result变量中,只存储了一个SQL资源。要获取查询的实际内容,请使用$result\u array=mysql\u fetch\u array$result,它将返回一个包含数据的数组。然后可以调用simplexml\u load\u file$result\u array[0]函数。mysql\u查询返回一个资源。用于访问内容。它们在文档中有示例
$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\u查询只返回一个句柄,您需要使用mysql\u fetch\u数组实际生成该结果的数组。您还应该添加一些错误捕获,如上所示。非常感谢您的帮助。我尝试了这个方法,但它并没有只加载第21行中的链接,而是加载表中存在的所有链接。这是为什么?如果看不到更多的代码,就无法判断。