小编bah*_*dso的帖子

将PHP数组数据保存到mysql表的最佳方法

我的问题是什么是将大型php数组保存到mysql表的最佳和最有效的方法.我知道有很多方法可以做到这一点,我尝试过其中的一些,但我还没有找到一种我觉得很舒服的方法.大多数人推荐的主要方法是serialize()和unserialize()php函数.出于某种原因,这对我不起作用,我似乎已经尝试了各种方法来解决这个问题,但是我很高兴.

这是我的代码:

    // unserialize songs, add new song to end of array, and then re-serialize to add to db
    $cereal = unserialize($dbsongs);
    $pushed = array_push($cereal, $_GET['song']);
    $songs = serialize($pushed);

    //update playlists table
    $stmt = $dbh->prepare("UPDATE playlists SET songs=:songs WHERE title=:title AND user=:user");
    $stmt->bindParam(':user', $_SESSION['username'], PDO::PARAM_STR);
    $stmt->bindParam(':title', $_GET['title'], PDO::PARAM_STR);
    $stmt->bindParam(':songs', $songs, PDO::PARAM_STR);
    $stmt->execute();
Run Code Online (Sandbox Code Playgroud)

所以首先我反序列化$ dbsongs,它是mysql表中序列化数据的空白列表.然后我用array_push()$ _GET ['song']推送到数组.然后我序列化并将其存储到db.由于某种原因,这不起作用,但我也想知道是否有更好的方法.

我应该尝试分解php数组并将每个项目保存到表中并用逗号分隔项目,当我从数据库中检索它时它们会破坏该字符串吗?

或者我应该修复我正在使用的这种方法?或者甚至添加base64_decode()base64_encode()?从我读过的一些内容来看,这些方法看起来有点老了...... http://www.evolt.org/node/60222

我见过一个使用.implode的方法,但我无法弄清楚如何使用它... 链接1 链接2.这看起来像我见过的最现代的方法.这是我应该进一步研究的内容吗?

不知道这个方法是什么,但它提到了Cakephp,我想它是一个php库.这是一个好方法吗?链接1

我将在这些列表中存储大量项目(例如定期超过1k项目),所以我甚至不确定将这些项目保存到一个表格字段是否合适.简单地为这些项目制作一个表是最好的方法,因为列表将变得很大(为每个新项目添加新的数据库条目并创建一个"标题"字段将它们全部链接在一起)?我从来没有尝试过类似的东西,因为我无法找到足够的信息来了解mysql实际上可以容纳多少数据而不会出现问题.

我知道这里有很多问题,但任何答案都将不胜感激!提前致谢!

-呸

php mysql arrays serialization cakephp

6
推荐指数
1
解决办法
8447
查看次数

向acts_as_taggable_on标记添加新列

基本上我想添加对标签投票的能力,所以我想为每个不同模型的标签设置一个优先级列.

关于如何做到这一点的任何想法?

我怀疑我需要进行新的迁移,但我不知道该怎么做.迁移会是什么?

谢谢!

ruby-on-rails acts-as-taggable-on

5
推荐指数
1
解决办法
808
查看次数