悟空不逃学 / laravel-doris
此 Laravel 扩展为查询构造器和 Eloquent 添加了对 Doris 和 StarRocks 的支持。
dev-master
2024-08-19 07:10 UTC
Requires
This package is auto-updated.
Last update: 2024-09-19 07:22:44 UTC
README
让 Doris 和 StarRocks 直接使用查询构造器和 ORM
此 Laravel 扩展为查询构造器和 Eloquent 添加了对 Doris 和 StarRocks 的支持。
不建议在生产环境中使用
不推荐在生产环境中使用
要求
mysqli
PDO
安装
composer require "wukongdontskipschool/laravel-doris" "^1.0.0"
使用
// config/database.php
// connections inside add
'doris' => [
'driver' => 'doris',
'url' => env('DORIS_DATABASE_URL'),
'host' => env('DORIS_DB_HOST', '127.0.0.1'),
'port' => env('DORIS_DB_PORT', '9030'),
'database' => env('DORIS_DB_DATABASE', 'forge'),
'username' => env('DORIS_DB_USERNAME', 'forge'),
'password' => env('DORIS_DB_PASSWORD', ''),
'charset' => env('DB_CHARSET', 'utf8mb4'),
'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
'prefix' => env('DB_PREFIX', ''),
'strict' => env('DB_STRICT_MODE', true),
'options' => [
// 连接超时时间秒 Connection timeout time Second
PDO::ATTR_TIMEOUT => 3,
// 是否数值类型转字符串 Whether numeric type is converted to string
PDO::ATTR_EMULATE_PREPARES => false
]
],
Lumen 需要额外注册 Lumen Additional registration required
// bootstrap/app.php
// add
$app->register(\Wukongdontskipschool\LaravelDoris\DatabaseServiceProvider::class);
备注 Remark
示例 Example
DB::connection('doris')->select('show tables');
XXModel::where('value', '=', 1)->get();
DB 查询结果集 DB Query result
// DB开头的查询返回结果集的类型和其他驱动的不同
// The type of result set returned by a query that starts with DB is different from that of other drivers
$dorisres = DB::connection('doris')->table(tableName)->all();
$mysqlres = DB::connection('mysql')->table(tableName)->all();
dd($dorisres, $mysqlres);
// doris items里的元素类型是array
// The element type in doris items is array
^ Illuminate\Support\Collection^ {#375
#items: array:1 [
0 => array:2 [
"id" => 1
"name" => "name"
]
]
#escapeWhenCastingToString: false
}
// mysql items里的元素类型是object
// The element type in mysql items is object
Illuminate\Support\Collection^ {#368
#items: array:1 [
0 => {#370id
+"id": 1
+"name": "name"
}
]
#escapeWhenCastingToString: false
}
其他 Other
insert() 是不会返回id的,需要自己获取
It will not return the id, you need to get your own
cursor() 不是真的游标,doris还是会一次性全部返回
It's not a real cursor. doris will still return all at once