PHP:将序列化blob拉入数组然后显示

时间:2013-05-01 23:56:18

标签: php mysql serialization blob

更新代码:

<?php
mysql_connect(HIDDEN)
    or die(mysql_error());
mysqli_select_db($conn, "wow")
    or die(mysql_error());
$data = mysqli_query($conn, "SELECT Data FROM wa_guilds") or die(mysql_error());

print "<table border cellpadding=3>"; 
while($info = mysqli_fetch_array( $data, MYSQLI_BOTH )) 
{ 
 Print "<tr>"; 
 Print "<th>Name:</th> <td>".$info['name'] . "</td> "; 
 Print "<th>Level:</th> <td>".$info['level'] . " </td></tr>"; 
} 
print "</table>";
?>

但是我收到了这个错误: 可捕获的致命错误:类mysqli_result的对象无法转换为字符串

它被存储为名为Data的行中的blob。我假设我必须反序列化它,但我真的不知道如何。

如果有任何帮助,我正在使用这个库。 https://sourceforge.net/p/wowarmoryapi/home/Home/没有关于如何在数据库中缓存数据后获取数据的文档。

新错误: 可捕获的致命错误:类mysqli_result的对象无法转换为字符串

1 个答案:

答案 0 :(得分:1)

首先,标准回复:不要使用mysql _...函数。但是请使用mysql i _ ...函数或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中放置响应资源。