溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php+mysqli預(yù)處理技術(shù)如何實(shí)現(xiàn)添加、修改及刪除多條數(shù)據(jù)

發(fā)布時(shí)間:2021-09-02 10:57:17 來(lái)源:億速云 閱讀:147 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要為大家展示了“php+mysqli預(yù)處理技術(shù)如何實(shí)現(xiàn)添加、修改及刪除多條數(shù)據(jù)”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“php+mysqli預(yù)處理技術(shù)如何實(shí)現(xiàn)添加、修改及刪除多條數(shù)據(jù)”這篇文章吧。

具體分析如下:

首先來(lái)說(shuō)說(shuō)為什么要有預(yù)處理(預(yù)編譯)技術(shù)?舉個(gè)例子:假設(shè)要向數(shù)據(jù)庫(kù)添加100個(gè)用戶,按常規(guī)思路,就是向數(shù)據(jù)庫(kù)發(fā)送100個(gè)執(zhí)行請(qǐng)求,此時(shí),按照 mysql 數(shù)據(jù)庫(kù)的工作原理,它需要對(duì)每一條執(zhí)行語(yǔ)句進(jìn)行編譯(這里就有100次)。所以,這里的效率是非常低的。

預(yù)處理(預(yù)編譯)技術(shù)的作用,就是減少編譯的次數(shù)和時(shí)間,以提高效果。通過(guò)一個(gè)案例來(lái)說(shuō)明,預(yù)處理(預(yù)編譯)技術(shù)是如何做到的(好吧,先說(shuō)清楚,當(dāng) php 程序第一次發(fā)送 sql 語(yǔ)句時(shí),mysql 數(shù)據(jù)庫(kù)就編譯好,到了后面99次,php只要發(fā)送數(shù)據(jù)過(guò)去即可,不需要再進(jìn)行編譯)。

<?php
//1、創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象
$mysqli = new MySQLi("localhost","root","123456","liuyan");
if($mysqli->connect_error){
 die($mysqli->connect_error);
}
$mysqli->query("set names 'GBK'");
//2、創(chuàng)建預(yù)編譯對(duì)象
$sql = "insert into account(id,balance) values(?,?)";
//這里用 ? 來(lái)代替要插入的數(shù)據(jù)值
$stmt = $mysqli->prepare($sql);
//返回一個(gè)statement對(duì)象,對(duì)象中的方法見(jiàn)手冊(cè) MySQLi_STMT
//3、綁定參數(shù)(需要插入的數(shù)據(jù)),并執(zhí)行
$id=null;//這里我數(shù)據(jù)庫(kù)設(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表示,具體見(jiàn)手冊(cè)
$res = $stmt->execute();//執(zhí)行語(yǔ)句,返回值為布爾類型
//4、判斷是否執(zhí)行成功
if(!$res){
 echo "數(shù)據(jù)插入失敗,balance值為:".$balance;
}else{
 echo "成功";
}

/*
*****插入第二條數(shù)據(jù)
*/
//3、綁定參數(shù)(需要插入的數(shù)據(jù)),并執(zhí)行
$id=null;//這里我數(shù)據(jù)庫(kù)設(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í)行語(yǔ)句,返回值為布爾類型
//4、判斷是否執(zhí)行成功
if(!$res){
 echo "數(shù)據(jù)插入失敗,balance值為:".$balance;
}else{
 echo "成功";
}
?>

以上是“php+mysqli預(yù)處理技術(shù)如何實(shí)現(xiàn)添加、修改及刪除多條數(shù)據(jù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI