php+mysqli預(yù)處理技術(shù)實(shí)現(xiàn)添加、修改及刪除多條數(shù)據(jù)的方法
本文實(shí)例講述了php+mysqli預(yù)處理技術(shù)實(shí)現(xiàn)添加、修改及刪除多條數(shù)據(jù)的方法。分享給大家供大家參考。具體分析如下:
首先來說說為什么要有預(yù)處理(預(yù)編譯)技術(shù)?舉個(gè)例子:假設(shè)要向數(shù)據(jù)庫添加100個(gè)用戶,按常規(guī)思路,就是向數(shù)據(jù)庫發(fā)送100個(gè)執(zhí)行請求,此時(shí),按照 mysql 數(shù)據(jù)庫的工作原理,它需要對每一條執(zhí)行語句進(jìn)行編譯(這里就有100次)。所以,這里的效率是非常低的。
預(yù)處理(預(yù)編譯)技術(shù)的作用,就是減少編譯的次數(shù)和時(shí)間,以提高效果。通過一個(gè)案例來說明,預(yù)處理(預(yù)編譯)技術(shù)是如何做到的(好吧,先說清楚,當(dāng) php 程序第一次發(fā)送 sql 語句時(shí),mysql 數(shù)據(jù)庫就編譯好,到了后面99次,php只要發(fā)送數(shù)據(jù)過去即可,不需要再進(jìn)行編譯)。
<?php //1、創(chuàng)建數(shù)據(jù)庫連接對象 $mysqli = new MySQLi("localhost","root","123456","liuyan"); if($mysqli->connect_error){ die($mysqli->connect_error); } $mysqli->query("set names 'GBK'"); //2、創(chuàng)建預(yù)編譯對象 $sql = "insert into account(id,balance) values(?,?)"; //這里用 ? 來代替要插入的數(shù)據(jù)值 $stmt = $mysqli->prepare($sql); //返回一個(gè)statement對象,對象中的方法見手冊 MySQLi_STMT //3、綁定參數(shù)(需要插入的數(shù)據(jù)),并執(zhí)行 $id=null;//這里我數(shù)據(jù)庫設(shè)置成了 primary key auto_increment $balance=100.5; $stmt->bind_param("id",$id,$balance); //綁定參數(shù),返回值為布爾值。"if"按順序代表插入數(shù)據(jù)的數(shù)據(jù)類型 //這里$id為int,用i表示,$balance為float型,用d表示,具體見手冊 $res = $stmt->execute();//執(zhí)行語句,返回值為布爾類型 //4、判斷是否執(zhí)行成功 if(!$res){ echo "數(shù)據(jù)插入失敗,balance值為:".$balance; }else{ echo "成功"; } /* *****插入第二條數(shù)據(jù) */ //3、綁定參數(shù)(需要插入的數(shù)據(jù)),并執(zhí)行 $id=null;//這里我數(shù)據(jù)庫設(shè)置成了 primary key auto_increment $balance=400.3; $stmt->bind_param("id",$id,$balance); //綁定參數(shù),返回值為布爾值。"if"按順序代表插入數(shù)據(jù)的數(shù)據(jù)類型 //這里$id為int,用i表示,$balance為float型,用d表示。 $res = $stmt->execute();//執(zhí)行語句,返回值為布爾類型 //4、判斷是否執(zhí)行成功 if(!$res){ echo "數(shù)據(jù)插入失敗,balance值為:".$balance; }else{ echo "成功"; } ?>
希望本文所述對大家的php程序設(shè)計(jì)有所幫助。
- MySQL?SQL預(yù)處理(Prepared)的語法實(shí)例與注意事項(xiàng)
- Mysql prepare預(yù)處理的具體使用
- MySQL中預(yù)處理語句prepare、execute與deallocate的使用教程
- 理解Mysql prepare預(yù)處理語句
- php+mysqli使用預(yù)處理技術(shù)進(jìn)行數(shù)據(jù)庫查詢的方法
- PHP mysqli擴(kuò)展庫 預(yù)處理技術(shù)的使用分析
- mysqli預(yù)處理編譯的深入理解
- MySQL中Stmt 預(yù)處理提高效率問題的小研究
- Go?連接?MySQL之?MySQL?預(yù)處理詳解
相關(guān)文章
php 使用curl模擬ip和來源進(jìn)行訪問的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猵hp 使用curl模擬ip和來源進(jìn)行訪問的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05php使用GD實(shí)現(xiàn)顏色漸變實(shí)例
這篇文章主要介紹了php使用GD實(shí)現(xiàn)顏色漸變的方法,實(shí)例分析了php中GD庫的使用技巧,需要的朋友可以參考下2015-06-06php使用mysqli和pdo擴(kuò)展,測試對比mysql數(shù)據(jù)庫的執(zhí)行效率完整示例
這篇文章主要介紹了php使用mysqli和pdo擴(kuò)展,測試對比mysql數(shù)據(jù)庫的執(zhí)行效率,結(jié)合完整實(shí)例形式對比分析了php分別使用mysqli與pdo進(jìn)行數(shù)據(jù)庫插入操作的執(zhí)行時(shí)間,需要的朋友可以參考下2019-05-05php中g(shù)et_meta_tags()、CURL與user-agent用法分析
這篇文章主要介紹了php中g(shù)et_meta_tags()、CURL與user-agent用法,以實(shí)例形式較為詳細(xì)的分析了get_meta_tags()、CURL與user-agent使用時(shí)的注意事項(xiàng)與用法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12php字符串截取函數(shù)mb_substr用法實(shí)例分析
這篇文章主要介紹了php字符串截取函數(shù)mb_substr用法,結(jié)合實(shí)例形式分析了php使用mb_substr針對中文字符串截取與編碼控制相關(guān)操作技巧,需要的朋友可以參考下2019-06-06PHP讀取CURL模擬登錄時(shí)生成Cookie文件的方法
這篇文章主要介紹了PHP讀取CURL模擬登錄時(shí)生成Cookie文件的方法,包括了curl的使用及cookie的操作,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-11-11PHP嚴(yán)重致命錯(cuò)誤處理:php Fatal error: Cannot redeclare class or funct
這篇文章主要介紹了PHP嚴(yán)重致命錯(cuò)誤處理:php Fatal error: Cannot redeclare class or function,需要的朋友可以參考下2017-02-02