2 2 執行一條SQL語句

2021-09-10 22:11:56 字數 1618 閱讀 8448

對資料庫執行一條sql語句:

(1) mixed:mysqli_query(mysqli $link, string $query,int $resultmode=mysqli_store_result);

1)對於insert,update,delete等不會返回資料的sql語句,在執行沒有錯誤時返回true

2)對於返回資料的sql語句執行成功的時間會返回結果集物件,可以使用操作結果集物件的函式獲取資料

3)第三個引數決定了mysqli client和sever之間取結果集的方式 :

1. mysqli_store_result 

第三個預設是mysqli_store_result模式或省略不填,表示具體的結果集一次性返回給客戶端

用函式取值的時候相當於在本地取資料

2. mysqli_use_result

客戶端使用一條條取資料的函式,一次次來mysql這邊取,這種模式不怎麼用,在返回資料量特別大的時候用

用函式取值的時候相當於在伺服器端取資料

注意:如果使用mysqli_use_result模式則必須在獲取完所有的結果才可以使用該函式

$result=mysqli_query($link, $query,mysqli_use_result);

var_dump(mysqli_fetch_row($result));

var_dump(mysqli_fetch_row($result));

var_dump(mysqli_fetch_row($result));

/* mysqli_num_rows()函式在mysqli_use_result模式下獲取不到記錄有多少行

* 因為mysqli_use_result模式表示資料都在mysql伺服器端不在php端,

*/var_dump(mysqli_num_rows($result));

(2)bool:mysqli_real_query(mysqli $link, string $query);

也可以使用本函式對資料執行一條sql語句,返回結果為布林值,不返回結果集

適用於只需返回布林值,判斷有沒有執行成功的需求

如果想獲取結果集可以使用mysqli_store_result( )獲取結果集物件

$query='select * from t1';

if (mysqli_real_query($link,$query))

(3)如果在執行sql語句的時候發生錯誤,以上兩個函式都將返回false,並且可以使用以下函式處理錯誤原因

int:mysqli_errno(mysqli $link);

string:mysqli_error(mysqli $link);

$query="insert into t2(info) values('robin')"; //t2不存在

if (mysqli_query($link,$query))

else

//string 'table 'd14.t2' doesn't exist' (length=28)

一條SQL語句如何被執行

select from t where id 10 寫乙個查詢語句不難,但你知道一條sql語句被執行的過程嗎?下圖是mysql的基本架構圖。server層類似中介軟體,主要接受使用者請求,解析請求等。儲存引擎則是底層核心,負責資料的訪問。客戶端要想使用mysql,必須先和mysql建立乙個連線,聯結...

一條SQL語句的執行過程

1.1連線層 提供連線協議 tcp ip,socket 提供驗證 使用者 密碼 ip socket 提供專用連線線程 接收使用者sql,返回結果 通過以下語句可以檢視鏈結執行緒的基本情況 mysql show processlist 1.2sql層 重點 接收上層傳送的sql語句 語法驗證模組 驗證...

一條sql語句為何執行這麼慢

mysql是大多數場景下都可以使用的資料庫,大廠阿里很多都有用到,大家有沒有遇到一條sql語句執行速度很慢的情況呢,下面就我自己掌握的技能未大家分析分析,不足請補充指教。啟動mysql select from users where id 2 星號為了書寫方便 剛好你的 id 欄位上沒有索引,只能走...