php - 如何编写未序列化类别的查询

标签 php mysql

所以我的函数 post() 做了接下来的事情:

$category = serialize($postdata['post_category']);
        $query = "
                 INSERT INTO posts(post_title, post_content, post_category)
                 VALUES ('$postdata[post_title]', '$postdata[post_content]', '$category')
                 ";   

将序列化数据插入数据库,但在调用函数以仅显示那些具有相同类别的帖子时遇到问题,该函数如下所示:

public function cat($cat){
        global $db;
        $query = "
                 SELECT * FROM posts
                 WHERE post_category LIKE '%$cat%'
                 ";
        return $db->select($query);
    }   

所以我的问题是:对于这种特殊情况,最好将未序列化的数据插入数据库(以及如何做到这一点),还是提取序列化数据然后将其反序列化以显示一些特定的帖子(与之前的相同,尝试了几种选择,但没有获得正确的结果)?

最佳答案

If you want to store the categories array, you can use implode(',', $postdata['post_category'])

$category = implode(',', $postdata['post_category']);
$query = "
            INSERT INTO posts(post_title, post_content, post_category)
            VALUES ('$postdata[post_title]', '$postdata[post_content]', '$category')
"; 

and if you want to search the post based on some category you can use

public function cat($cat){
        global $db;
        $query = "
                 SELECT * FROM posts
                 WHERE find_in_set(".$cat.",post_category)
                 ";
        return $db->select($query);
}  

关于php - 如何编写未序列化类别的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23953441/

相关文章:

php - Mysql日期比较(大于等于)不带前导零

php - 使用联接检索数据两次

mysql - 在 MYSQL 中使用存储过程计算成本

mysql - 查询长度限制

MySQL查询以计算每个组内的百分比

php - 如何用PHP获取祖父目录

php - 如果第一个表中不存在,我想从第二个表中获取数据

php - 如何在php中生成查询错误

php - MySQL 1 个表、1 个选择、多个Where

php - 我无法从 mysql 数据库中获取多行到数组中?