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