php Mysqli預先處理語句二款執行個體代碼

來源:互聯網
上載者:User

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.