mysqli對prepare的支持對於大訪問量的網站是頗有好處的,它極大地下降了系統開銷,並且保證了建立查詢的穩定性和安全性。prepare準備語句分爲綁定參數和綁定結果,下面將會一一介紹! php
(1)綁定參數
看下面php代碼:
html
<?php //建立鏈接 $mysqli=new mysqli("localhost","root","","volunteer"); //檢查鏈接是否被建立 if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } /* * 建立一個準備查詢語句: * ?是個通配符,能夠用在任何有文字的數據 * 至關於一個模板,也就是預備sql語句 */ if ($stmt = $mysqli->prepare("insert into `vol_msg`(mid,content) values(?,?)")){ /*第一個參數是綁定類型,"s"是指一個字符串,也能夠是"i",指的是int。也能夠是"db", * d表明雙精度以及浮點類型,而b表明blob類型,第二個參數是變量 */ $stmt->bind_param("is",$id,$content); //給變量賦值 $id = ""; $content = "這是插入的內容"; //執行準備語句 $stmt->execute(); //顯示插入的語句 echo "Row inserted".$stmt->affected_rows; //下面還能夠繼續添加多條語句,不須要prepare預編譯了 //關閉數據庫的連接 $mysqli->close(); } ?>以上php實例運行結果:
(2).綁定結果:綁定結果就是將你綁定的字段給php變量,以便必要時使用這些變量
請看下面的php代碼:
mysql
<?php //建立鏈接 $mysqli=new mysqli("localhost","root","","volunteer"); //設置mysqli編碼 mysqli_query($mysqli,"SET NAMES utf8"); //檢查鏈接是否被建立 if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } //建立準備語句 if ($stmt = $mysqli->prepare("select mid,content from `vol_msg`")){ //執行查詢 $stmt->execute(); //爲準備語句綁定實際變量 $stmt->bind_result($id,$content); //顯示綁定結果的變量 while($stmt->fetch()){ echo "第".$id."條: ".$content."<br />"; } //關閉數據庫的連接 $mysqli->close(); } ?>參考閱讀:http://www.manongjc.com/article/1194.html