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();//關閉預處理對象
?>