mysql的預準備語句 23 5 4 預準備語句

2021-10-22 09:59:32 字數 2390 閱讀 2469

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...