第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

DBAL QueryBuilder:避免SQL注入的safier方法是什么?

DBAL QueryBuilder:避免SQL注入的safier方法是什么?

PHP
慕村225694 2022-08-05 18:52:09
根據(jù) DBAL 文檔,只有 setFirstResult 和 setMaxResults 這兩種方法被設計為對 SQL 注入是安全的。但是在QueryBuilder部分,他們提到要安全地使用QueryBuilder,我們必須使用setParameter方法傳遞用戶輸入。所以我看到了2種方法來做到這一點,但我不知道它們是否有真正的區(qū)別:方式1:$qb->select('USR_id', 'USR_email')->from('T_user_USR')->where('USR_email = ? ')->setParameter(0, $email);$stmtQb = $qb->execute();$results = $stmtQb->fetchAll();方式 2 :$qb->select('USR_id', 'USR_email')->from('T_user_USR')->where('USR_email = ? ');$stmtQb = $dbal->prepare($qb->getSQL());$stmtQb->bindValue(1, $email);$stmtQb->execute();$results = $stmtQb->fetchAll();最好的方法是什么?提前致謝
查看完整描述

1 回答

?
呼喚遠方

TA貢獻1856條經(jīng)驗 獲得超11個贊

這兩個示例最終執(zhí)行相同的操作。也就是說,當您使用參數(shù)值時,將使用 綁定到語句。setParameter()bindValue()

請參閱 https://github.com/doctrine/dbal/blob/master/lib/Doctrine/DBAL/Connection.php#L1326-L1356,了解在 DBAL 中執(zhí)行此操作的內部函數(shù)。

使用第二種形式的唯一原因是,如果要使用 而不是 。如果要通過引用將參數(shù)綁定到 PHP 變量,則可以執(zhí)行此操作,例如,您可以在啟動循環(huán)之前準備一次查詢,然后在循環(huán)中多次執(zhí)行它。bindParam()bindValue()

這兩種方法在 SQL 注入方面提供相同程度的保護。


查看完整回答
反對 回復 2022-08-05
  • 1 回答
  • 0 關注
  • 122 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號