php+mysqli預(yù)處理技術(shù)實現(xiàn)添加、修改及刪除多條數(shù)據(jù)的方法
本文實例講述了php+mysqli預(yù)處理技術(shù)實現(xiàn)添加、修改及刪除多條數(shù)據(jù)的方法。分享給大家供大家參考。具體分析如下:
首先來說說為什么要有預(yù)處理(預(yù)編譯)技術(shù)?舉個例子:假設(shè)要向數(shù)據(jù)庫添加100個用戶,按常規(guī)思路,就是向數(shù)據(jù)庫發(fā)送100個執(zhí)行請求,此時,按照 mysql 數(shù)據(jù)庫的工作原理,它需要對每一條執(zhí)行語句進(jìn)行編譯(這里就有100次)。所以,這里的效率是非常低的。
預(yù)處理(預(yù)編譯)技術(shù)的作用,就是減少編譯的次數(shù)和時間,以提高效果。通過一個案例來說明,預(yù)處理(預(yù)編譯)技術(shù)是如何做到的(好吧,先說清楚,當(dāng) php 程序第一次發(fā)送 sql 語句時,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);
//返回一個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è)計有所幫助。
相關(guān)文章
php 使用curl模擬ip和來源進(jìn)行訪問的實現(xiàn)方法
下面小編就為大家?guī)硪黄猵hp 使用curl模擬ip和來源進(jìn)行訪問的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05
php使用mysqli和pdo擴(kuò)展,測試對比mysql數(shù)據(jù)庫的執(zhí)行效率完整示例
這篇文章主要介紹了php使用mysqli和pdo擴(kuò)展,測試對比mysql數(shù)據(jù)庫的執(zhí)行效率,結(jié)合完整實例形式對比分析了php分別使用mysqli與pdo進(jìn)行數(shù)據(jù)庫插入操作的執(zhí)行時間,需要的朋友可以參考下2019-05-05
php中g(shù)et_meta_tags()、CURL與user-agent用法分析
這篇文章主要介紹了php中g(shù)et_meta_tags()、CURL與user-agent用法,以實例形式較為詳細(xì)的分析了get_meta_tags()、CURL與user-agent使用時的注意事項與用法,具有一定的參考借鑒價值,需要的朋友可以參考下2014-12-12
php字符串截取函數(shù)mb_substr用法實例分析
這篇文章主要介紹了php字符串截取函數(shù)mb_substr用法,結(jié)合實例形式分析了php使用mb_substr針對中文字符串截取與編碼控制相關(guān)操作技巧,需要的朋友可以參考下2019-06-06
PHP嚴(yán)重致命錯誤處理:php Fatal error: Cannot redeclare class or funct
這篇文章主要介紹了PHP嚴(yán)重致命錯誤處理:php Fatal error: Cannot redeclare class or function,需要的朋友可以參考下2017-02-02

