【问题标题】:unserialize some data into an array将一些数据反序列化为数组
【发布时间】:2015-07-09 11:40:12
【问题描述】:

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

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) 才能最终从画廊表中获得结果。

我写了这段代码,但是串行数据的获取不起作用

<?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)");
?>

任何帮助将不胜感激。

【问题讨论】:

    标签: php mysql sql serialization


    【解决方案1】:

    你有一个错字,$和;不见了

    $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. ")");
        }
    ?>
    

    【讨论】:

    • 感谢您的提示。但这只是一个重新输入错误......并没有解决问题
    • 非常感谢,它就像一个魅力。这解决了我的问题。我是新人,我必须在某个地方添加 [已解决] 或类似的东西吗?再次感谢您
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    • 2016-09-15
    • 2016-09-06
    相关资源
    最近更新 更多