主頁 > 知識庫 > tp5.1 框架數(shù)據(jù)庫高級查詢技巧實例總結(jié)

tp5.1 框架數(shù)據(jù)庫高級查詢技巧實例總結(jié)

熱門標簽:電子地圖標注怎么修改 廈門400電話辦理選易號網(wǎng) 梧州市機器人外呼系統(tǒng)怎么樣 地圖標注符號樣式有 菏澤語音外呼系統(tǒng)運營商 天客通地圖標注 公司外呼系統(tǒng)中心 如何在世界地圖標注 臨沂crm外呼系統(tǒng)平臺

本文實例講述了tp5.1 框架數(shù)據(jù)庫高級查詢技巧。分享給大家供大家參考,具體如下:

快捷查詢

快捷查詢方式是一種多字段相同查詢條件的簡化寫法,可以進一步簡化查詢條件的寫法,在多個字段之間用|分割表示OR查詢,用分割表示AND查詢,可以實現(xiàn)下面的查詢,例如:

Db::table('think_user')
 ->where('name|title','like','thinkphp%')
 ->where('create_timeupdate_time','>',0)
 ->find();

生成的查詢SQL是:

SELECT * FROM 
 `think_user` 
WHERE ( 
 `name` LIKE 'thinkphp%' OR `title` LIKE 'thinkphp%' ) 
AND ( 
 `create_time` > 0 AND `update_time` > 0 ) 
LIMIT 1

快捷查詢支持所有的查詢表達式。

區(qū)間查詢

區(qū)間查詢是一種同一字段多個查詢條件的簡化寫法,例如:

Db::table('think_user')
 ->where('name', ['like', '%thinkphp%'], ['like', '%kancloud%'], 'or')
 ->where('id', ['>', 0], ['>', 10], 'and')
 ->find();

生成的SQL語句為:

SELECT * FROM 
 `think_user` 
WHERE ( 
 `name` LIKE '%thinkphp%' OR `name` LIKE '%kancloud%' ) 
AND ( 
 `id` > 0 AND `id` > 10 )
LIMIT 1

區(qū)間查詢的查詢條件必須使用數(shù)組定義方式,支持所有的查詢表達式。

下面的查詢方式是錯誤的:

Db::table('think_user')
 ->where('name', ['like', 'thinkphp%'], ['like', '%thinkphp'])
 ->where('id', 5, ['>', 10], 'or')
 ->find();

區(qū)間查詢其實可以用下面的方式替代,更容易理解,因為查詢構(gòu)造器支持對同一個字段多次調(diào)用查詢條件,例如:

Db::table('think_user')
 ->where('name', 'like', '%think%')
 ->where('name', 'like', '%php%')
 ->where('id', 'in', [1, 5, 80, 50])
 ->where('id', '>', 10)
 ->find();

批量(字段)查詢

可以進行多個條件的批量條件查詢定義,例如:

Db::table('think_user')
 ->where([
 ['name', 'like', 'thinkphp%'],
 ['title', 'like', '%thinkphp'],
 ['id', '>', 0],
 ['status', '=', 1],
 ])
 ->select();

生成的SQL語句為:

SELECT * FROM 
 `think_user` 
WHERE 
 `name` LIKE 'thinkphp%' 
AND 
 `title` LIKE '%thinkphp' 
AND 
 `id` > 0 
AND 
 `status` = '1'

注意,V5.1.7+版本數(shù)組方式如果使用exp查詢的話,一定要用raw方法。

Db::table('think_user')
 ->where([
 ['name', 'like', 'thinkphp%'],
 ['title', 'like', '%thinkphp'],
 ['id', 'exp', Db::raw('>score')],
 ['status', '=', 1],
 ])
 ->select();

數(shù)組查詢方式,確保你的查詢數(shù)組不能被用戶提交數(shù)據(jù)控制,用戶提交的表單數(shù)據(jù)應(yīng)該是作為查詢數(shù)組的一個元素傳入,如下:

Db::table('think_user')
 ->where([
 ['name', 'like', $name . '%'],
 ['title', 'like', '%' . $title],
 ['id', '>', $id],
 ['status', '=', $status],
 ])
 ->select();

注意,相同的字段的多次查詢條件可能會合并,如果希望某一個where方法里面的條件單獨處理,可以使用下面的方式,避免被其它條件影響。

$map = [
 ['name', 'like', 'thinkphp%'],
 ['title', 'like', '%thinkphp'],
 ['id', '>', 0],
 ];
Db::table('think_user')
 ->where([ $map ])
 ->where('status',1)
 ->select();

生成的SQL語句為:

SELECT * FROM 
 `think_user` 
WHERE ( 
 `name` LIKE 'thinkphp%' 
AND 
 `title` LIKE '%thinkphp' 
AND 
 `id` > 0 ) 
AND 
 `status` = '1'

如果使用下面的多個條件組合

$map1 = [
 ['name', 'like', 'thinkphp%'],
 ['title', 'like', '%thinkphp'],
 ];
 
$map2 = [
 ['name', 'like', 'kancloud%'],
 ['title', 'like', '%kancloud'],
 ]; 
 
Db::table('think_user')
 ->whereOr([ $map1, $map2 ])
 ->select();

生成的SQL語句為:

SELECT * FROM 
 `think_user` 
WHERE ( 
 `name` LIKE 'thinkphp%' 
AND 
 `title` LIKE '%thinkphp' ) 
OR ( 
 `name` LIKE 'kancloud%' 
AND 
 `title` LIKE '%kancloud' )

善用多維數(shù)組查詢,可以很方便的拼裝出各種復(fù)雜的SQL語句

數(shù)組對象查詢(V5.1.21+)

對于習(xí)慣或者重度依賴數(shù)組查詢條件的用戶來說,可以選擇數(shù)組對象查詢,該對象完成了普通數(shù)組方式查詢和系統(tǒng)的查詢表達式之間的橋接,但相較于系統(tǒng)推薦的查詢表達式方式而言,需要注意變量的安全性,避免產(chǎn)生SQL注入的情況。

使用方法如下:

use think\db\Where;
 
$map = [
 'name' => ['like', 'thinkphp%'],
 'title' => ['like', '%think%'],
 'id' => ['>', 10],
 'status' => 1,
];
 
$where  = new Where;
$where['id'] = ['in', [1, 2, 3]];
$where['title'] = ['like', '%php%'];
 
Db::table('think_user')
 ->where(new Where($map))
 ->whereOr($where->enclose())
 ->select();

enclose方法表示該查詢條件兩邊會加上括號包起來。

使用數(shù)組對象查詢的情況請一定要注意做好數(shù)據(jù)類型檢查,盡量避免讓用戶決定你的數(shù)據(jù)。

生成的SQL是:

SELECT * FROM 
 `think_user` 
WHERE 
 `name` LIKE 'thinkphp%' 
AND 
 `title` LIKE '%think%' 
AND 
 `id` > 10 
AND 
 `status` =1 
OR ( 
 `id` IN (1,2,3) 
AND 
 `title` LIKE '%php%' )

閉包查詢

$name = 'thinkphp';
$id = 10;
Db::table('think_user')->where(function ($query) use($name, $id) {
 $query->where('name', $name)
 ->whereOr('id', '>', $id);
})->select();

生成的SQL語句為:

SELECT * FROM `think_user` WHERE ( `name` = 'thinkphp' OR `id` > 10 )

可見每個閉包條件兩邊也會自動加上括號,但需要注意,使用閉包查詢的時候不能使用cache(true)數(shù)據(jù)緩存,而應(yīng)該使用指定key的方式例如cache('key')。

混合查詢

可以結(jié)合前面提到的所有方式進行混合查詢,例如:

Db::table('think_user')
 ->where('name', ['like', 'thinkphp%'], ['like', '%thinkphp'])
 ->where(function ($query) {
 $query->where('id', ['', 10], ['>', 100], 'or');
 })
 ->select();

生成的SQL語句是:

SELECT * FROM 
 `think_user` 
WHERE ( 
 `name` LIKE 'thinkphp%' 
AND 
 `name` LIKE '%thinkphp' ) 
AND ( 
 `id`  10 or `id` > 100 )

字符串條件查詢

對于一些實在復(fù)雜的查詢,也可以直接使用原生SQL語句進行查詢,例如:

Db::table('think_user')
 ->where('id > 0 AND name LIKE "thinkphp%"')
 ->select();

為了安全起見,我們可以對字符串查詢條件使用參數(shù)綁定,例如:

Db::table('think_user')
 ->where('id > :id AND name LIKE :name ', ['id' => 0, 'name' => 'thinkphp%'])
 ->select();

V5.1.8+版本開始,如果你要使用字符串條件查詢,推薦使用whereRaw方法。

Db::table('think_user')
 ->whereRaw('id > :id AND name LIKE :name ', ['id' => 0, 'name' => 'thinkphp%'])
 ->select();

使用Query對象查詢(V5.1.5+)

V5.1.5+版本開始,可以通過調(diào)用一次where方法傳入Query對象來進行查詢。

$query = new \think\db\Query;
$query->where('id','>',0)
	->where('name','like','%thinkphp');
 
Db::table('think_user')
 ->where($query)
 ->select();

Query對象的where方法僅能調(diào)用一次,如果query對象里面使用了非查詢條件的鏈式方法,則不會傳入當前查詢。

$query = new \think\db\Query;
$query->where('id','>',0)
	->where('name','like','%thinkphp')
 ->order('id','desc') // 不會傳入后面的查詢
 ->field('name,id'); // 不會傳入后面的查詢
 
Db::table('think_user')
 ->where($query)
 ->where('title','like','thinkphp%') // 有效
 ->select();

快捷方法

系統(tǒng)封裝了一系列快捷方法,用于簡化查詢,包括:

方法 作用
whereOr 字段OR查詢
whereXor 字段XOR查詢
whereNull 查詢字段是否為Null
whereNotNull 查詢字段是否不為Null
whereIn 字段IN查詢
whereNotIn 字段NOT IN查詢
whereBetween 字段BETWEEN查詢
whereNotBetween 字段NOT BETWEEN查詢
whereLike 字段LIKE查詢
whereNotLike 字段NOT LIKE查詢
whereExists EXISTS條件查詢
whereNotExists NOT EXISTS條件查詢
whereExp 表達式查詢
whereColumn 比較兩個字段

下面舉例說明下兩個字段比較的查詢條件whereColumn方法的用法。

查詢update_time大于create_time的用戶數(shù)據(jù)

Db::table('think_user')
 ->whereColumn('update_time','>','create_time')
 ->select();

生成的SQL語句是:

SELECT * FROM `think_user` WHERE ( `update_time` > `create_time` ) 

查詢namenickname相同的用戶數(shù)據(jù)

Db::table('think_user')
 ->whereColumn('name','=','nickname')
 ->select();

生成的SQL語句是:

SELECT * FROM `think_user` WHERE ( `name` = `nickname` )

相同字段條件也可以簡化為

Db::table('think_user')
 ->whereColumn('name','nickname')
 ->select();

高級查詢

快捷查詢

快捷查詢方式是一種多字段相同查詢條件的簡化寫法,可以進一步簡化查詢條件的寫法,在多個字段之間用|分割表示OR查詢,用分割表示AND查詢,可以實現(xiàn)下面的查詢,例如:

Db::table('think_user')
 ->where('name|title','like','thinkphp%')
 ->where('create_timeupdate_time','>',0)
 ->find();

生成的查詢SQL是:

SELECT * FROM `think_user` 
WHERE ( `name` LIKE 'thinkphp%' OR `title` LIKE 'thinkphp%' ) 
AND ( `create_time` > 0 AND `update_time` > 0 ) 
LIMIT 1

快捷查詢支持所有的查詢表達式。

區(qū)間查詢

區(qū)間查詢是一種同一字段多個查詢條件的簡化寫法,例如:

Db::table('think_user')
 ->where('name', ['like', '%thinkphp%'], ['like', '%kancloud%'], 'or')
 ->where('id', ['>', 0], ['>', 10], 'and')
 ->find();

生成的SQL語句為:

SELECT * FROM `think_user` 
WHERE ( `name` LIKE '%thinkphp%' OR `name` LIKE '%kancloud%' ) 
AND ( `id` > 0 AND `id` > 10 ) 
LIMIT 1

區(qū)間查詢的查詢條件必須使用數(shù)組定義方式,支持所有的查詢表達式。

下面的查詢方式是錯誤的:

Db::table('think_user')
 ->where('name', ['like', 'thinkphp%'], ['like', '%thinkphp'])
 ->where('id', 5, ['>', 10], 'or')
 ->find();

區(qū)間查詢其實可以用下面的方式替代,更容易理解,因為查詢構(gòu)造器支持對同一個字段多次調(diào)用查詢條件,例如:

Db::table('think_user')
 ->where('name', 'like', '%think%')
 ->where('name', 'like', '%php%')
 ->where('id', 'in', [1, 5, 80, 50])
 ->where('id', '>', 10)
 ->find();

批量(字段)查詢

可以進行多個條件的批量條件查詢定義,例如:

Db::table('think_user')
 ->where([
 ['name', 'like', 'thinkphp%'],
 ['title', 'like', '%thinkphp'],
 ['id', '>', 0],
 ['status', '=', 1],
 ])
 ->select();

生成的SQL語句為:

SELECT * FROM `think_user` 
WHERE `name` LIKE 'thinkphp%' 
AND `title` LIKE '%thinkphp' 
AND `id` > 0 
AND `status` = '1'

注意,V5.1.7+版本數(shù)組方式如果使用exp查詢的話,一定要用raw方法。

Db::table('think_user')
 ->where([
 ['name', 'like', 'thinkphp%'],
 ['title', 'like', '%thinkphp'],
 ['id', 'exp', Db::raw('>score')],
 ['status', '=', 1],
 ])
 ->select();

數(shù)組查詢方式,確保你的查詢數(shù)組不能被用戶提交數(shù)據(jù)控制,用戶提交的表單數(shù)據(jù)應(yīng)該是作為查詢數(shù)組的一個元素傳入,如下:

Db::table('think_user')
 ->where([
 ['name', 'like', $name . '%'],
 ['title', 'like', '%' . $title],
 ['id', '>', $id],
 ['status', '=', $status],
 ])
 ->select();

注意,相同的字段的多次查詢條件可能會合并,如果希望某一個where方法里面的條件單獨處理,可以使用下面的方式,避免被其它條件影響。

$map = [
 ['name', 'like', 'thinkphp%'],
 ['title', 'like', '%thinkphp'],
 ['id', '>', 0],
 ];
Db::table('think_user')
 ->where([ $map ])
 ->where('status',1)
 ->select();

生成的SQL語句為:

SELECT * FROM `think_user` 
WHERE ( `name` LIKE 'thinkphp%' AND `title` LIKE '%thinkphp' AND `id` > 0 ) 
AND `status` = '1'

如果使用下面的多個條件組合

$map1 = [
 ['name', 'like', 'thinkphp%'],
 ['title', 'like', '%thinkphp'],
 ];
 
$map2 = [
 ['name', 'like', 'kancloud%'],
 ['title', 'like', '%kancloud'],
 ]; 
 
Db::table('think_user')
 ->whereOr([ $map1, $map2 ])
 ->select();

生成的SQL語句為:

SELECT * FROM `think_user` 
WHERE ( `name` LIKE 'thinkphp%' AND `title` LIKE '%thinkphp' ) 
OR ( `name` LIKE 'kancloud%' AND `title` LIKE '%kancloud' )

善用多維數(shù)組查詢,可以很方便的拼裝出各種復(fù)雜的SQL語句

數(shù)組對象查詢(V5.1.21+)

對于習(xí)慣或者重度依賴數(shù)組查詢條件的用戶來說,可以選擇數(shù)組對象查詢,該對象完成了普通數(shù)組方式查詢和系統(tǒng)的查詢表達式之間的橋接,但相較于系統(tǒng)推薦的查詢表達式方方式而言,需要注意變量的安全性,避免產(chǎn)生SQL注入的情況。

使用方法如下:

use think\db\Where;
 
$map = [
 'name' => ['like', 'thinkphp%'],
 'title' => ['like', '%think%'],
 'id' => ['>', 10],
 'status' => 1,
];
 
$where  = new Where;
$where['id'] = ['in', [1, 2, 3]];
$where['title'] = ['like', '%php%'];
 
Db::table('think_user')
 ->where(new Where($map))
 ->whereOr($where->enclose())
 ->select();

enclose方法表示該查詢條件兩邊會加上括號包起來。

使用數(shù)組對象查詢的情況請一定要注意做好數(shù)據(jù)類型檢查,盡量避免讓用戶決定你的數(shù)據(jù)。

生成的SQL是:

SELECT * FROM `think_user` 
WHERE `name` LIKE 'thinkphp%' 
AND `title` LIKE '%think%' 
AND `id` > 10 
AND `status` =1 
OR ( `id` IN (1,2,3) AND `title` LIKE '%php%' )

閉包查詢

$name = 'thinkphp';
$id = 10;
Db::table('think_user')->where(function ($query) use($name, $id) {
 $query->where('name', $name)
 ->whereOr('id', '>', $id);
})->select();

生成的SQL語句為:

SELECT * FROM `think_user` WHERE ( `name` = 'thinkphp' OR `id` > 10 )

可見每個閉包條件兩邊也會自動加上括號,但需要注意,使用閉包查詢的時候不能使用cache(true)數(shù)據(jù)緩存,而應(yīng)該使用指定key的方式例如cache('key')

混合查詢

可以結(jié)合前面提到的所有方式進行混合查詢,例如:

Db::table('think_user')
 ->where('name', ['like', 'thinkphp%'], ['like', '%thinkphp'])
 ->where(function ($query) {
 $query->where('id', ['', 10], ['>', 100], 'or');
 })
 ->select();

生成的SQL語句是:

SELECT * FROM `think_user` 
WHERE ( `name` LIKE 'thinkphp%' AND `name` LIKE '%thinkphp' ) 
AND ( `id`  10 or `id` > 100 )

字符串條件查詢

對于一些實在復(fù)雜的查詢,也可以直接使用原生SQL語句進行查詢,例如:

Db::table('think_user')
 ->where('id > 0 AND name LIKE "thinkphp%"')
 ->select();

為了安全起見,我們可以對字符串查詢條件使用參數(shù)綁定,例如:

Db::table('think_user')
 ->where('id > :id AND name LIKE :name ', ['id' => 0, 'name' => 'thinkphp%'])
 ->select();

V5.1.8+版本開始,如果你要使用字符串條件查詢,推薦使用whereRaw方法。

Db::table('think_user')
 ->whereRaw('id > :id AND name LIKE :name ', ['id' => 0, 'name' => 'thinkphp%'])
 ->select();

使用Query對象查詢(V5.1.5+)

V5.1.5+版本開始,可以通過調(diào)用一次where方法傳入Query對象來進行查詢。

$query = new \think\db\Query;
$query->where('id','>',0)
	->where('name','like','%thinkphp');
 
Db::table('think_user')
 ->where($query)
 ->select();

Query對象的where方法僅能調(diào)用一次,如果query對象里面使用了非查詢條件的鏈式方法,則不會傳入當前查詢。

$query = new \think\db\Query;
$query->where('id','>',0)
	->where('name','like','%thinkphp')
 ->order('id','desc') // 不會傳入后面的查詢
 ->field('name,id'); // 不會傳入后面的查詢
 
Db::table('think_user')
 ->where($query)
 ->where('title','like','thinkphp%') // 有效
 ->select();

快捷方法

系統(tǒng)封裝了一系列快捷方法,用于簡化查詢,包括:

方法 作用
whereOr 字段OR查詢
whereXor 字段XOR查詢
whereNull 查詢字段是否為Null
whereNotNull 查詢字段是否不為Null
whereIn 字段IN查詢
whereNotIn 字段NOT IN查詢
whereBetween 字段BETWEEN查詢
whereNotBetween 字段NOT BETWEEN查詢
whereLike 字段LIKE查詢
whereNotLike 字段NOT LIKE查詢
whereExists EXISTS條件查詢
whereNotExists NOT EXISTS條件查詢
whereExp 表達式查詢
whereColumn 比較兩個字段

下面舉例說明下兩個字段比較的查詢條件whereColumn方法的用法。

查詢update_time大于create_time的用戶數(shù)據(jù)

Db::table('think_user')
 ->whereColumn('update_time','>','create_time')
 ->select();

生成的SQL語句是:

SELECT * FROM `think_user` WHERE ( `update_time` > `create_time` ) 

查詢namenickname相同的用戶數(shù)據(jù)

Db::table('think_user')
 ->whereColumn('name','=','nickname')
 ->select();

生成的SQL語句是:

SELECT * FROM `think_user` WHERE ( `name` = `nickname` )

相同字段條件也可以簡化為

Db::table('think_user')
 ->whereColumn('name','nickname')
 ->select();

V5.1.11+版本開始,支持數(shù)組方式比較多個字段

Db::name('user')->whereColumn([
	['title', '=', 'name'],
 ['update_time', '>=', 'create_time'],
])->select();

生成的SQL語句是:

SELECT * FROM `think_user` 
WHERE ( `name` = `nickname` AND `update_time` > `create_time` ) 

動態(tài)查詢

查詢構(gòu)造器還提供了兩個動態(tài)查詢機制,用于簡化查詢條件,包括getBygetFieldBy。

動態(tài)查詢 描述
whereFieldName 查詢某個字段的值
whereOrFieldName 查詢某個字段的值
getByFieldName 根據(jù)某個字段查詢
getFieldByFieldName 根據(jù)某個字段獲取某個值

其中FieldName表示數(shù)據(jù)表的實際字段名稱的駝峰法表示,假設(shè)數(shù)據(jù)表user中有emailnick_name字段,我們可以這樣來查詢。

// 根據(jù)郵箱(email)查詢用戶信息
$user = Db::table('user')
	->whereEmail('thinkphp@qq.com')
 ->find();
 
// 根據(jù)昵稱(nick_name)查詢用戶
$email = Db::table('user')
 ->whereNickName('like', '%流年%')
 ->select();
 
// 根據(jù)郵箱查詢用戶信息
$user = Db::table('user')
 ->getByEmail('thinkphp@qq.com');
 
// 根據(jù)昵稱(nick_name)查詢用戶信息
$user = Db::table('user')
 ->field('id,name,nick_name,email')
 ->getByNickName('流年');
 
// 根據(jù)郵箱查詢用戶的昵稱
$nickname = Db::table('user')
 ->getFieldByEmail('thinkphp@qq.com', 'nick_name');
 
// 根據(jù)昵稱(nick_name)查詢用戶郵箱
$email = Db::table('user')
 ->getFieldByNickName('流年', 'email');

getBygetFieldBy方法只會查詢一條記錄,可以和其它的鏈式方法搭配使用

條件查詢

5.1的查詢構(gòu)造器支持條件查詢,例如:

Db::name('user')->when($condition, function ($query) {
 // 滿足條件后執(zhí)行
 $query->where('score', '>', 80)->limit(10);
})->select();

并且支持不滿足條件的分支查詢

Db::name('user')->when($condition, function ($query) {
 // 滿足條件后執(zhí)行
 $query->where('score', '>', 80)->limit(10);
}, function ($query) {
 // 不滿足條件執(zhí)行
 $query->where('score', '>', 60);
});

更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。

希望本文所述對大家基于ThinkPHP框架的PHP程序設(shè)計有所幫助。

您可能感興趣的文章:
  • tp5.1 框架路由操作-URL生成實例分析
  • tp5.1 框架join方法用法實例分析
  • tp5.1框架數(shù)據(jù)庫子查詢操作實例分析
  • tp5.1 框架數(shù)據(jù)庫常見操作詳解【添加、刪除、更新、查詢】
  • tp5.1 框架查詢表達式用法詳解
  • TP5框架安全機制實例分析
  • TP5框架實現(xiàn)自定義分頁樣式的方法示例
  • PHP tp5中使用原生sql查詢代碼實例

標簽:黃石 郴州 貴陽 迪慶 雞西 瀘州 白城 綿陽

巨人網(wǎng)絡(luò)通訊聲明:本文標題《tp5.1 框架數(shù)據(jù)庫高級查詢技巧實例總結(jié)》,本文關(guān)鍵詞  tp5.1,框架,數(shù)據(jù)庫,高級,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《tp5.1 框架數(shù)據(jù)庫高級查詢技巧實例總結(jié)》相關(guān)的同類信息!
  • 本頁收集關(guān)于tp5.1 框架數(shù)據(jù)庫高級查詢技巧實例總結(jié)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章