萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> php Mysqli預處理語句二款實例代碼

php Mysqli預處理語句二款實例代碼

php教程 mysql教程i預處理語句二款實例代碼


<?php
/*=========================mysqli_stmt預處理類(推薦使用)=========================*/
/*===============================優點:效率高,安全================================*/
 $mysqli=new mysqli("localhost","root","123456","xiaoqiangdb");
 
 
/*=================================非select語句==================================*/
 
 $sql="insert into shops教程(name,price,num,desn) values(?,?,?,?)";    //准備一條語句放到服務器中
 
 $stmt=$mysqli->prepare($sql);    //放到數據庫教程
 
 $stmt->bind_param("sdis",$name,$price,$num,$desn);  //給占位符傳值,類型-變量(不能是值)
 
 $name="zhangsan";
 $price=56.56;
 $num=66;
 $desn="good";
 
 $stmt->execute();    //執行
 
 echo "最後id".$stmt->insert_id;
 $stmt->close();

/*=================================select語句==================================*/

 $sql="select id,name,price,num,desn from shops where id>?";    //准備一條語句放到服務器中
 
 $stmt=$mysqli->prepare($sql);    //放到數據庫
 
 $stmt->bind_param("i",$id);  //給占位符傳值,類型-變量(不能是值)
 
 $stmt->bind_result($id,$name,$price,$num,$desn);    //綁定結果集
 
 $id=99;
 
 $stmt->execute();    //執行
 
 $stmt->store_result();    //一次性講結果都取過來,才能移動指針和獲取總數
 
 //字段信息
 $result=$stmt->result_metadata();
 
 while($field=$result->fetch_field()){
  echo $field->name;
 }
 echo "<br>";
 
 //記錄信息
 $stmt->data_seek(2);   
 
 while($stmt->fetch()){
  echo "$id--$name--$price--$num--$desn<br>";
 }
 echo "記錄總數:".$stmt->num_rows;
 
 $stmt->free_result();
 
 $stmt->close();

?>


實例二


<?php
 
$mysqli=new mysqli("localhost","root","","test");
$mysqli->query("set names 'gbk'");//設置為中文編碼
 
//$stmt=$mysqli->stmt_init();//返回的就是一個預處理類對象
 
//准備一條語句
//$sql="insert into `test` ('name','age','dpc') values(?,?,?)";//准備一條語句
//$stmt->prepare($sql);
 
//其實 mysqli 本身就有prepare()方法,所以,以上的部分可以改為:
 
//准備一條語句
$sql="insert into `test`(`name`,`age`,`dpc`) values(?,?,?)";//准備一條語句
 
$stmt=$mysqli->prepare($sql);//直接返回了 stmt對象
 
//按占位符綁定參數
$stmt->bind_param("sis",$name,$age,$dpc);// “sis”指的是參數的數據類型 s:字符串,i:整型,d:雙精度,b:大二進制
 
//重復插入數據
$name="陳華1";//填寫參數
$age="25";//填寫參數
$dpc="web開發筆記撰寫者,網址是www.chhua.com";//填寫參數
$stmt->execute();//執行
 
$name="陳華2";//填寫參數
$age="25";//填寫參數
$dpc="web開發筆記撰寫者,網址是www.chhua.com";//填寫參數
$stmt->execute();//執行
 
$name="陳華3";//填寫參數
$age="25";//填寫參數
$dpc="web開發筆記撰寫者,網址是www.chhua.com";//填寫參數
$stmt->execute();//執行
 
$name="陳華4";//填寫參數
$age="25";//填寫參數
$dpc="web開發筆記撰寫者,網址是www.chhua.com";//填寫參數
$stmt->execute();//執行
 
echo "最後插入的id:".$stmt->insert_id."<br>";
echo "最後一條語句影響了行數:".$stmt->affected_rows;
$stmt->


預處理代碼


<?php
 
$mysqli=new mysqli("localhost","root","","test");
$mysqli->query("set names 'gbk'");//設置為中文編碼
 
//准備一條語句
$sql="select * from `test` where `id`>?";//准備一條語句
 
$stmt=$mysqli->prepare($sql);//直接返回了 stmt對象
 
//按占位符綁定參數
$stmt->bind_param("i",$id);// “i”指的是參數的數據類型 s:字符串,i:整型,d:雙精度,b:大二進制
$id=5;
$stmt->execute();//執行
$stmt->bind_result($id,$name,$age,$dpc);//綁定結果注意,必須和查詢語句中所查詢的段名稱相對應
$stmt->fetch();//這個方法是一條一條的獲取結果集信息
while ($stmt->fetch()){
 echo $name."----".$age."----".$dpc."<br>";
}
$stmt->close();//關閉預處理對象
?>

copyright © 萬盛學電腦網 all rights reserved