【问题标题】:How to write sql query in cakephp 2如何在 cakephp 2 中编写 sql 查询
【发布时间】:2019-02-05 06:57:56
【问题描述】:

我是 cakephp 新手,我使用的是 cakephp 2.8,我有一个 sql 查询,我想转换成 cakephp 查询,我该怎么做?

这是我的 sql 查询,它在 sql 中运行良好,但我想以 cakphp 格式实现,以下是 sql 查询

SELECT meta_description.tag_id,meta_description.tag_name,poll_meta.poll_id,polls.content,polls.type,polls.poll_type,polls.user_id,users.username,user_profile.first_name,user_profile.last_name, user_profile.image, user_profile.display_name
FROM meta_description
JOIN poll_meta
ON meta_description.tag_id=poll_meta.tag_id
JOIN polls
ON poll_meta.poll_id=polls.id
JOIN users
ON polls.user_id=users.id
JOIN user_profile
ON users.id=user_profile.user_id
WHERE meta_description.tag_id = ? AND polls.status = 1
            ORDER BY polls.id DESC

我尝试使用以下代码,但这对我不起作用,显示错误

$polls['joins'] = array(
    array('table' => 'meta_description',
        'alias' => 'BooksTag',
        'type' => 'inner',
        'conditions' => array(
            ' meta_description.tag_id =$tag_id, 
            'polls.status'="1"

        )
    ),
    array('table' => 'poll_meta',
        'alias' => 'poll_meta',
        'type' => 'inner',
        'conditions' => array(
            'poll_meta.poll_id = polls.id'
        )
    )

   array('table' => 'users',
        'alias' => 'users',
        'type' => 'inner',
        'conditions' => array(
            'polls.user_id = users.id'
        )
    )   
   array('table' => 'user_profile',
        'alias' => 'user_profile',
        'type' => 'inner',
        'conditions' => array(
            ' users.id = user_profile.user_id'
        )
    )   
);

 'order' => array('Poll.date_created' => 'DESC'),
                'limit' => 10

$options['conditions'] = array(
    'meta_description.tag_id' => '$tagid',
    'polls.status' => '1'
);

$polls = $poll->find('all', $options);

上面的代码显示内部服务器错误,我该如何删除它,我错在哪里?提前致谢。

【问题讨论】:

    标签: php cakephp cakephp-2.0


    【解决方案1】:

    不是Cake专家但代码中有PHP语法错误,将' meta_description.tag_id =$tag_id,更改为'meta_description.tag_id ='.$tag_id, 从变量中删除单个引号并尝试读取 error_log 文件,这种所有错误都记录在那里

    【讨论】:

    • 请不要这样做,改用key => value语法,将变量数据插入字符串是一个可能的SQL注入漏洞!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    相关资源
    最近更新 更多