我有这个代码:
<?php
mysql_connect(HIDDEN)
or die(mysql_error());
mysql_select_db("wow")
or die(mysql_error());
$data = ("SELECT Data FROM wa_guilds") or die(mysql_error());
print "<table border cellpadding=3>";
while($info = mysql_fetch_array( $data ))
{
Print "<tr>";
Print "<th>Name:</th> <td>".$info['name'] . "</td> ";
Print "<th>Level:</th> <td>".$info['level'] . " </td></tr>";
}
print "</table>";
?>
但我收到此错误: 警告:mysql_fetch_array() 期望参数 1 是资源,blah blah 中给出的字符串
它作为 blob 存储在名为 Data 的行中。我假设我必须反序列化它,但我真的不知道如何。
我正在使用这个库,如果它有帮助的话。 https://sourceforge.net/p/wowarmoryapi/home/Home/没有文档说明如何在数据库中缓存数据后获取数据。
最佳答案
首先,标准回复:不要使用 mysql_... 函数。但请使用 mysqli_ ... 函数或 PDO 代替。 mysql_... 函数已弃用。
但是你真正的答案是:
改变
$data = ("SELECT Data FROM wa_guilds") or die(mysql_error());
进入
$data = mysql_query("SELECT Data FROM wa_guilds") or die(mysql_error());
因为在当前代码中,您将一个字符串放入 $data 中。但在代码中,我建议您使用 mysql_query() 运行该查询,这会将响应资源放入 $data 中。
关于PHP:将序列化的blob拉入数组然后显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16328286/