首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Laravel中使用DB ::select和其他工具安全吗?

在Laravel中使用DB ::select和其他工具安全吗?
EN

Stack Overflow用户
提问于 2018-12-11 14:55:42
回答 1查看 1K关注 0票数 0

查询并不总是简单的,有时我需要创建一个纯SQL查询,查询生成器也不适合。ПрииспользованииDB::选择,подготовливаютсялипеременные,которыеподставленывзапрос?

在这种情况下会有sql注入吗?

代码语言:javascript
复制
$mastersInCity = DB::select('SELECT
        master_user.master_id,
        masters.specialization,
        category_letter_master.category_letter_id AS master_letter,
        COUNT(*) AS count_in_city

        FROM master_user

        LEFT JOIN masters ON master_user.master_id = masters.id
        LEFT JOIN category_letter_master ON category_letter_master.master_id = master_user.master_id 

        WHERE ' . $chooiseId . ' = ' . $cityId . ' GROUP 

        BY master_user.master_id, master_letter');

或者,在这种情况下,最好直接使用PDO,这样可以自己手动准备请求吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-11 14:57:19

代码语言:javascript
复制
$mastersInCity = DB::select('SELECT
    master_user.master_id,
    masters.specialization,
    category_letter_master.category_letter_id AS master_letter,
    COUNT(*) AS count_in_city

    FROM master_user

    LEFT JOIN masters ON master_user.master_id = masters.id
    LEFT JOIN category_letter_master ON category_letter_master.master_id = master_user.master_id 

    WHERE ? = ? GROUP 

    BY master_user.master_id, master_letter', [$chooiseId, $cityId]);

这相当于准备好的陈述。

博士:https://laravel.com/docs/5.7/database#running-queries

编辑:我相信只要有口才就能做到这一点,这里没有什么太复杂的。类似于:

代码语言:javascript
复制
MasterUser::with(['master', 'master_letter'])->withCount()->where($chooiseId, $cityId)->get()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53726750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档