2013-05-01 61 views
0

更新的代码:PHP:拉系列化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的对象无法转换为字符串

它作为一个blob存储在一个名为Data的行中。我假设我不得不反序列化它,但我不知道如何。

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

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

回答

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()); 

因为在当前的代码你把一个字符串$数据。但是在代码中,我建议你使用mysql_query()来运行这个查询,这会在$ data中放置一个响应资源。

+0

酷我明白这一点。我更新了代码,现在得到这个错误:警告:mysql_fetch_array()期望参数1是资源,对象在第18行删除DELETED – 2013-05-02 12:55:38

+1

@BrandiEvans是啊,这是因为现在你正在混合mysql _...函数与mysqli _...功能。你不能那样做。你应该坚持mysql _...函数(不建议使用)或使用mysqli _...函数。例如:您正在使用mysqli_query(),但后来使用mysql_fetch_array。 – 2013-05-02 13:45:48

+0

我没注意到!好的谢谢你的帮助<3 – 2013-05-02 14:02:08

相关问题