php - 将一些数据反序列化为数组

标签 php mysql sql serialization

我遇到了一个问题,涉及从存储在表中的序列化数据中获取一些数据并将其用于对另一个表进行排队。我的方法如下,但我对编程很陌生,它不起作用

table wppg_album
id - name -   gallery_list
1 - album1 -  a:1:{i:0;s:1:"1";i:1;s:1:"8"}
2 - album2 -  a:2:{i:0;s:2:"17";i:1;s:2:"19";i:2;s:2:"18";}
3 - album3 -  a:3:{i:0;s:2:"13";}

我坚持获取 SQL 字符串并反序列化单元格 gallery_list 中选定 ID 的数据。

现在要处理的相册已经确定,告诉 #2 我必须获取 array(17,18,19) 才能最终从 galleries 表中获取结果。

我写了这段代码,但是无法获取串行数据

<?php 
    $sql = "SELECT * FROM ".WPPG_TBL_ALBUM." WHERE id = 2";
    $result = mysql_query($sql);
    $stringGalleries = mysql_fetch_object($result);
    $galleries = unserialize($stringGalleries);
    $ids = join(',',$galleries); 
    $data = $wpdb->get_results("SELECT * FROM ".WPPG_TBL_GALLERY." WHERE id IN   ($ids)");
?>

我们将不胜感激。

最佳答案

你打错了,$ 和 ;失踪

$galleries = unserialize($stringGalleries);

您还以错误的方式使用了 mysql_fetch_object...这是正确的代码

<?php 
    $sql = "SELECT * FROM ".WPPG_TBL_ALBUM." WHERE id = 2";
    $result = mysql_query($sql);
    while ($galleriesRow = mysql_fetch_object($result)) {
        $galleries = unserialize($galleriesRow->gallery_list);
        $ids = join(',',$galleries); 
        $data = $wpdb->get_results("SELECT * FROM ".WPPG_TBL_GALLERY." WHERE id IN (" . $ids. ")");
    }
?>

关于php - 将一些数据反序列化为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29956393/

相关文章:

php - 这段代码的事务和回滚

当使用 <> 时,MySQL Select 响应缺失带有 NULL 值的行

php - 我可以通过 1 个查询来完成此操作吗?

php - 如何构建电子商务应用程序的数据库?

mysql - 如何根据键查找特定列的值之间的差异?

sql - 在oracle中查找父(任意级别)的最多子节点

mysql - MySQL 上的 0.07 秒查询在 MariaDB 上需要 11.68 秒?

php - MYSQL 查询未按预期工作

php - 如何使用 AJAX 在 PHP、MySQL 中启动进程,然后停止

PHP PostgreSQL 打开/关闭连接性能