23.5.4 預準備語句
使用預準備語句可提高重複使用語句的效能,在php中,使用prepare()方法來進行預準備語句查詢,使用execute()方法來執行預準備語句。php有兩種預準備語句:一種是繫結結果,另一種是繫結引數。
1.繫結結果
所謂繫結結果就是把php指令碼中的自定義變數繫結到結果集中的相應欄位上,這些變數就代表著所查詢的記錄,繫結結果的示例**如下:
**23-30 光碟\codes\第23章\23.5\bandresult.php<?php
$mysqli=newmysqli("localhost","root","root","sunyang");
//例項化mysqli
$query="select * from employee";
$result=$mysqli->prepare($query);
//進行預準備語句查詢
$result->execute();
//執行預準備語句
$result->bind_result($id,$number,$name,$age);
//繫結結果
while($result->fetch()) {
echo$id;
echo$number;
echo$name;
echo$age;
$result->close();
//關閉預準備語句
$mysqli->close();
//關閉連線
在繫結結果的時候,指令碼中的變數要與結果集中的字段一一對應,繫結完以後,通過fetch()方法將繫結在結果集中的變數一一取出來,***將預準備語句和資料庫連線分別關閉。
2.繫結引數
所謂繫結引數就是把php指令碼中的自定義變數繫結到sql語句中的引數(引數使用 "?"代替)上,繫結引數使用bind_param()方法,該方法的語法格式如下:bool bind_param ( string$types, mixed &$var1[, mixed &$... ] )
在上述語法中涉及到的引數說明如下。
types:繫結的變數的資料型別,它接受的字元種類包括4個,如表23-1所示。
表23-1 字元描述
字元種類
代表的資料型別
iinteger
ddouble
sstring
bblob
引數types接受的字元的種類和繫結的變數需要一一對應。
var1:繫結的變數,其數量必須要與sql語句中的引數數量保持一致。
繫結引數的示例**如下:
**23-31 光碟\codes\第23章\23.5\bandparam.php<?php
$mysqli=newmysqli("localhost","root","root","sunyang");
//例項化mysqli
$query="insert into employee (emp_number,emp_name,emp_age)
values (?,?,?)";
$result=$mysqli->prepare($query);
$result->bind_param("ssi",$number,$name,$age);
//繫結引數
$number='sy0807';
$name='employee7';
$age=20;
$result->execute();
//執行預準備語句
$result->close();
$mysqli->close();
在乙個指令碼中還可以同時繫結引數和繫結結果,示例**如下:
**23-32 光碟\codes\第23章\23.5\bandparamresult.php<?php
$mysqli=newmysqli("localhost","root","root","sunyang");
//例項化mysqli
$query="select * from employee where emp_id
$result=$mysqli->prepare($query);
$result->bind_param("i",$emp_id);
//繫結引數
$emp_id=4;
$result->execute();
$result->bind_result($id,$number,$name,$age);
//繫結結果
while($result->fetch()) {
echo$id."
";echo$number."
";echo$name."
";echo$age."
";$result->close();
$mysqli->close();
點讚 0
mysql執行準備 MySQL準備語句
mysql準備語句 prepared statements 使用增強的二進位制客戶端 伺服器協議在客戶端和伺服器之間高效的傳送資料,可以通過支援這種行協議的程式設計庫來訪問準備語句。建立準備語句時,客戶端庫會像伺服器傳送乙個實際查詢的原型,然後伺服器對該原型進行解析和處理,將部分優化過的原型儲存起來...
MySQL準備語句
mysql準備語句 prepared statements 使用增強的二進位制客戶端 伺服器協議在客戶端和伺服器之間高效的傳送資料,可以通過支援這種行協議的程式設計庫來訪問準備語句。建立準備語句時,客戶端庫會像伺服器傳送乙個實際查詢的原型,然後伺服器對該原型進行解析和處理,將部分優化過的原型儲存起來...
MySQL筆記(MYSQL準備語句)
mysql準備語句 mysql支援準備語句,即在執行真正的查詢前,將查詢的模式先傳送到伺服器進行解析,將解析和優化的結果儲存下來,在一些程式設計庫中支援這種功能,通過準備語句可以很高效的在客戶端和伺服器端進行資料傳送。準備語句中,將?作為引數,例如 insert into people last n...