MySqli預處理

預處理是先提交SQL語句到服務端,執行預編譯,php

客戶端執行SQL語句時,只須要上傳輸入參數便可。html

若是涉及屢次讀取或存儲,效率高於普通SQL執行操做。mysql

1.普通SQL執行sql

1 <?php
2   header('content-type:text/html;charset=utf-8');
3   $mysqli=new mysqli('localhost','root','','test');
4   $mysqli->query('set names utf8');
5   $sql="INSERT INTO users(name,money) values('張三',100)";
6   $result=$mysqli->query($sql);
7  ?>

 

2.預處理(增刪改) fetch

 1 <?php
 2   header('content-type:text/html;charset=utf-8');
 3   $mysqli=new mysqli('localhost','root','','test');
 4   $mysqli->query('set names utf8');
 5 
 6   $sql="INSERT INTO users(name,money) values(?,?)"; //參數以?代替
 7   $stmt=$mysqli->prepare($sql); //預處理
 8   
 9   $name='張三';
10   $money=100;
11   $stmt->bind_param('si',$name,$money); //綁定參數
12   $result=$stmt->execute();
13 
14   $name='李四';
15   $money=200;
16   $stmt->bind_param('si',$name,$money); //綁定參數
17   $result=$stmt->execute();
18  ?>

 

 3.預處理(查詢) spa

 1 <?php
 2   header('content-type:text/html;charset=utf-8');
 3   $mysqli=new mysqli('localhost','root','','test');
 4   $mysqli->query('set names utf8');
 5   $sql='SELECT * FROM users WHERE id>?'; //參數以?代替
 6   $stmt=$mysqli->prepare($sql);  //預處理
 7   $id=1;
 8   $stmt->bind_param('i',$id); //綁定參數
 9   $stmt->bind_result($id,$name,$money);  //查詢須要綁定結果集 [必須綁定全部字段]
10   $stmt->execute(); //執行sql語句
11   //取出結果集
12   while($stmt->fetch()){
13     $data[]=[
14       'id'=>$id,
15       'name'=>$name,
16       'monry'=>$money
17     ];
18   }
19   var_dump($data);
20 
21  ?>
相關文章
相關標籤/搜索