亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

php安裝教程詳解 php防sql注入函數(shù)


php安裝教程詳解 php防sql注入函數(shù)

文章插圖
今天這篇文章 , 我們來(lái)簡(jiǎn)單的學(xué)習(xí)一下 PDO 中的預(yù)處理語(yǔ)句以及事務(wù)的使用 , 它們都是在 PDO 對(duì)象下的操作 , 而且并不復(fù)雜 , 簡(jiǎn)單的應(yīng)用都能很容易地實(shí)現(xiàn) 。只不過(guò)大部分情況下 , 大家都在使用框架 , 手寫(xiě)的機(jī)會(huì)非常少 。
預(yù)處理語(yǔ)句功能預(yù)處理語(yǔ)句就是準(zhǔn)備好一個(gè)要執(zhí)行的語(yǔ)句 , 然后返回一個(gè) PDOStatement 對(duì)象 。一般我們會(huì)使用 PDOStatement 對(duì)象的 execute() 方法來(lái)執(zhí)行這條語(yǔ)句 。為什么叫預(yù)處理呢?因?yàn)樗梢宰屛覀兌啻握{(diào)用這條語(yǔ)句 , 并且可以通過(guò)占位符來(lái)替換語(yǔ)句中的字段條件 。相比直接使用 PDO 對(duì)象的 query() 或者 exec() 來(lái)說(shuō) , 預(yù)處理的效率更高 , 它可以讓客戶端/服務(wù)器緩存查詢和元信息 。當(dāng)然 , 更加重要的一點(diǎn)是 , 占位符的應(yīng)用可以有效的防止基本的 SQL 注入攻擊 , 我們不需要手動(dòng)地給 SQL 語(yǔ)句添加引號(hào) , 直接讓預(yù)處理來(lái)解決這個(gè)問(wèn)題 , 相信這一點(diǎn)是大家都學(xué)習(xí)過(guò)的知識(shí) , 也是我們?cè)诿嬖嚂r(shí)最常見(jiàn)到的問(wèn)題之一 。
//使用:name形式創(chuàng)建一個(gè)只進(jìn)游標(biāo)的PDOStatement對(duì)象$stmt=$pdo->prepare("select*fromzyblog_test_userwhereusername=:username",[PDO::ATTR_CURSOR=>PDO::CURSOR_FWDONLY]);var_dump($stmt);//object(PDOStatement)#2(1){//["queryString"]=>//string(57)"select*fromzyblog_test_userwhereusername=:username"http://}$stmt->execute([':username'=>'aaa']);$aUser=$stmt->fetchAll();$stmt->execute([':username'=>'bbb']);$bUser=$stmt->fetchAll();var_dump($aUser);//array(1){//[0]=>//array(8){//["id"]=>//string(1)"1"http://[0]=>//string(1)"1"http://["username"]=>//string(3)"aaa"http://……var_dump($bUser);//array(1){//[0]=>//array(8){//["id"]=>//string(1)"2"http://[0]=>//string(1)"2"http://["username"]=>//string(3)"bbb"http://……prepare() 方法的第一個(gè)參數(shù)就是我們需要執(zhí)行的 SQL 語(yǔ)句 , 在這段代碼中 , 我們使用的是 :xxx 形式的占位符 , 所以在調(diào)用 prepare() 方法返回的 PDOStatement 對(duì)象的 execute() 方法時(shí) , 我們需要指定占位符的值 。在代碼中 , 我們使用這一條 SQL 語(yǔ)句 , 通過(guò)替換不同的占位符內(nèi)容 , 實(shí)現(xiàn)了兩次查詢 。
prepare() 方法的第二個(gè)參數(shù)是為返回的 PDOStatement 對(duì)象設(shè)置的屬性 。常見(jiàn)用法是:設(shè)置 PDO::ATTR_CURSOR 為 PDO::CURSOR_SCROLL , 將得到可滾動(dòng)的光標(biāo) 。某些驅(qū)動(dòng)有驅(qū)動(dòng)級(jí)的選項(xiàng) , 在 prepare 時(shí)就設(shè)置 。PDO::ATTR_CURSOR 是設(shè)置數(shù)據(jù)庫(kù)游標(biāo)的類(lèi)型 , 而 PDO::CURSOR_FWDONLY 的意思是創(chuàng)建一個(gè)只進(jìn)游標(biāo)的 PDOStatement 對(duì)象 。此為默認(rèn)的游標(biāo)選項(xiàng) , 因?yàn)榇擞螛?biāo)最快且是 PHP 中最常用的數(shù)據(jù)訪問(wèn)模式 。關(guān)于數(shù)據(jù)庫(kù)游標(biāo)的知識(shí)大家可以自行查閱相關(guān)的內(nèi)容 。
此外 , PDOStatement 還可以通過(guò) bindParam() 方法來(lái)綁定占位符數(shù)據(jù) , 我們將在后面學(xué)習(xí) PDOStatement 對(duì)象相關(guān)的文章中繼續(xù)學(xué)習(xí) 。
接下來(lái) , 我們?cè)倏匆幌率褂?? 號(hào)占位符來(lái)實(shí)現(xiàn)查詢 , ? 號(hào)占位符在綁定的時(shí)候是以下標(biāo)形式進(jìn)行綁定的 。
//使用?形式創(chuàng)建一個(gè)只進(jìn)游標(biāo)的PDOStatement對(duì)象$stmt=$pdo->prepare("select*fromzyblog_test_userwhereusername=?",[PDO::ATTR_CURSOR=>PDO::CURSOR_FWDONLY]);$stmt->execute(['aaa']);$aUser=$stmt->fetchAll();var_dump($aUser);//array(1){//[0]=>//array(8){//["id"]=>//string(1)"1"http://[0]=>//string(1)"1"http://["username"]=>//string(3)"aaa"http://……當(dāng)然 , 這種預(yù)編譯語(yǔ)句不僅限于查詢語(yǔ)句 , 增、刪、改都是可以的 , 而且也都是支持占位符的 。在 PHP中操作數(shù)據(jù)庫(kù)的預(yù)處理語(yǔ)句 這篇文章中有詳細(xì)的示例 。


以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問(wèn)題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專(zhuān)業(yè)人士給予相關(guān)指導(dǎo)!

「愛(ài)刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助: