《關(guān)于MYSQL預處理技術(shù)的一些體會》要點:
本文介紹了關(guān)于MYSQL預處理技術(shù)的一些體會,希望對您有用。如果有疑問,可以聯(lián)系我們。
先來看傳統(tǒng)的操作數(shù)據(jù)庫的辦法.傳統(tǒng)的操作數(shù)據(jù)庫辦法有兩種:
先寫一條sql語句,然后通過mysqli->query($sql)去操作數(shù)據(jù)庫(筆者此處使用的是mysqli擴展庫).這樣操作 并不會有什么大的錯誤,但是當你要插入上千條上萬條數(shù)據(jù)呢?難道也還是要這樣寫一 條sql語句然后再操作一下數(shù)據(jù)庫?那有人會說, 好辦嘛 ,用mysqli自帶的操作多條sql語句的辦法,即第二種辦法.
mysqli->multi_query($sql),這是操作多條sql語句的辦法,如下:
如果你認為這樣就可以完全辦理問題,那么你就錯了,讓我們接下來看一看MySQL數(shù)據(jù)庫執(zhí)行sql語句的原理吧
從上圖可以看出,無論我們是發(fā)送一條sql語句還是發(fā)送多條sql語句,數(shù)據(jù)庫都要對其一一的進行編譯,那么當數(shù)據(jù)達到一定量之后,數(shù)據(jù)庫的開銷就必然很大.那怎樣辦理這個問題?此時就引入了預處理技術(shù)的概念.
下面我們來看一段預處置技術(shù)的代碼:
首先我們來看
$sql = "insert into student_info(name,age,sex,studentNo,grade) values (?,?,?,?,?)";
$mysqli_stmt->execute();這句代碼便是將數(shù)據(jù)傳遞給數(shù)據(jù)庫了.
使用預處置數(shù)據(jù)查詢數(shù)據(jù)庫
代碼如下:
可以看出,查詢與插入相比多了
這樣一句代碼,那么這句代碼是什么意思呢?
可以想象,查詢數(shù)據(jù)庫的時候,數(shù)據(jù)庫必然會返回一個結(jié)果集,那么如果你想取得該結(jié)果的一些數(shù)據(jù),那么就必需加上這句話.那么,這些參數(shù)又是什么意思呢?
看看這句sql語句,你會發(fā)現(xiàn)bind_result里面的參數(shù)一一對應(yīng)于sql語句當中你要查詢的字段(name,sex,age),當然,bind_result里面的參數(shù)可以不與sql語句的字段名字相同,但是我們通常保舉這樣做.
多的不說,上圖:
可以這樣理解:$name,$sex,$age是引用傳遞,他們相當于指針,分別指向成果集的第一行的列地址,每執(zhí)行一次while語句,指針便向下移動
這樣,便可以打印出每一行的數(shù)據(jù)了 ,成果如下:
同時,那三個封閉別忘記了,重中之重.
《關(guān)于MYSQL預處理技術(shù)的一些體會》是否對您有啟發(fā),歡迎查看更多與《關(guān)于MYSQL預處理技術(shù)的一些體會》相關(guān)教程,學精學透。維易PHP學院為您提供精彩教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/7095.html