2.laravelフレームワークにおけるデータベース基本操作について
7422 ワード
1.データベースの構成:config/database.php
データベースの3つの操作方法:元の検索:DB facade
クエリーコンストラクタ
Eloquent ORM
DB facade:最も原始的なsql文操作データテーブル
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
class TestController extends Controller{
public function testDB(){
//問い合わせ
DB::select('select * from tablename');
//追加
DB::insert('insert into tablename(name,age) values(?,?)',['name',18]);//使う?より安全にバインド
//修正
DB::update('update student set age = ? where name = ?',[20,'name']);//返される値は、変更されたローの数です.
//削除
DB::delete('delete from tablename where id>?',[1]);
}
}
クエリーコンストラクタ
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
class TestController extends Controller{
//データの挿入
public function testinsert(){
DB::table('tablename')->inster(
['name'=>'test','age'=>18]
//複数組のデータを挿入する際、データを配列形式で書く:[
['name'=>'name','age'=>12],
['name'=>'testname','age'=>13],
]
);
}
//データの更新
public function testupdate{
//該当データの更新
DB::table('tablename')->where('id',1)->update(['age'=>15]);//データの更新には条件が必要です.where()
//自増
DB::table('tablename')->increment('age');//デフォルト自己増加1
DB::table('tablename')->increment('age',3);//自増3
//自滅
DB::table('tablename')->decrement('age',3);//自己減算3
//条件付きの場合
DB::table('tablename')->where('id',3)->decrement('age',3);
//他のフィールドも同時に変更
DB::table('tablename')->decrement('age',3,['name'=>'test'])
}
//データの削除
public function testdel(){
DB::table('tablename')->delete();//テーブル全体の削除
DB::table('tablename')->where('id',15)->delete();//id=15を削除
DB::table('tablename')->where('id','>=',15)->delete();//id>=15を削除
//総表削除、一般的にtruncate()を使わない;
DB::table('tablename')->truncate();//値は返されません.テーブル全体の情報が削除されました
}
//クエリー・コンストラクタを使用してデータをクエリー!方法はget(),fitst(),where(),pluck(),lists(),select(),chunk(),5.4後lists廃棄
public function testsel(){
//get()
DB::table('tablename')->get();//テーブルのすべてのデータの取得
//first()
DB::table('tablename')->first();//結果の最初の項目には、ソート条件例->where('id','>=',15)を付けることができます. ->orderBy('id','desc');//idの逆記述ソートによれば,ascは順序である.
//where()
DB::table('tablename')->where('id','>=',12)->get();
//複数条件
DB::table('tablename')->whereRaw('id >= ? and age >= ?',[12,15])->get();
//pluck()->結果セットを返すフィールド
DB::table('tablename')->pluck('name');
//lists()->結果セットのフィールドを返し、表示フィールドの下付きを定義します.
DB::table('tablename')->lists('name','id');//出力値はid=>name
//select()->固定フィールドの検索を指定
DB::table('tablename')->select('id','name','age')->get();//テーブルのid,name,ageフィールドのデータを検索
//chunk()->セグメント取得、5.4でchunkはorderBy()を使用する必要があります.
DB::table('tablename')->orderBy('id','desc')->chunk(1000,function($tables){
var_dump($tables);//1回に1000個のデータがクエリーされ、セグメント化されます.
if(条件){return false;}//スキップ出力
});
}
//クエリー・コンストラクタでの集約関数
public function testju(){
$count = DB::table('tablename')->count();//統計テーブルのレコード数
$max = DB::table('tablename')->max('age');//出力テーブルのage最大値
$min = DB::table('tablename')->min('age');//最小値
$avg = DB::table('tablename')->avg('age');//へいきんち
$sum = DB::table('tablename')->sum('age');//和を求める
}
}
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8mb4_general_ci',
'prefix' => 'wx_',//
'strict' => false,
'engine' => null,
],
.env
APP_ENV=local
APP_DEBUG=true
APP_KEY=FPg9LRkHTj5j14ig7ETzQhG29r5sEWNR
DB_HOST=localhost
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
データベースの3つの操作方法:元の検索:DB facade
クエリーコンストラクタ
Eloquent ORM
DB facade:最も原始的なsql文操作データテーブル
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
class TestController extends Controller{
public function testDB(){
//問い合わせ
DB::select('select * from tablename');
//追加
DB::insert('insert into tablename(name,age) values(?,?)',['name',18]);//使う?より安全にバインド
//修正
DB::update('update student set age = ? where name = ?',[20,'name']);//返される値は、変更されたローの数です.
//削除
DB::delete('delete from tablename where id>?',[1]);
}
}
クエリーコンストラクタ
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
class TestController extends Controller{
//データの挿入
public function testinsert(){
DB::table('tablename')->inster(
['name'=>'test','age'=>18]
//複数組のデータを挿入する際、データを配列形式で書く:[
['name'=>'name','age'=>12],
['name'=>'testname','age'=>13],
]
);
}
//データの更新
public function testupdate{
//該当データの更新
DB::table('tablename')->where('id',1)->update(['age'=>15]);//データの更新には条件が必要です.where()
//自増
DB::table('tablename')->increment('age');//デフォルト自己増加1
DB::table('tablename')->increment('age',3);//自増3
//自滅
DB::table('tablename')->decrement('age',3);//自己減算3
//条件付きの場合
DB::table('tablename')->where('id',3)->decrement('age',3);
//他のフィールドも同時に変更
DB::table('tablename')->decrement('age',3,['name'=>'test'])
}
//データの削除
public function testdel(){
DB::table('tablename')->delete();//テーブル全体の削除
DB::table('tablename')->where('id',15)->delete();//id=15を削除
DB::table('tablename')->where('id','>=',15)->delete();//id>=15を削除
//総表削除、一般的にtruncate()を使わない;
DB::table('tablename')->truncate();//値は返されません.テーブル全体の情報が削除されました
}
//クエリー・コンストラクタを使用してデータをクエリー!方法はget(),fitst(),where(),pluck(),lists(),select(),chunk(),5.4後lists廃棄
public function testsel(){
//get()
DB::table('tablename')->get();//テーブルのすべてのデータの取得
//first()
DB::table('tablename')->first();//結果の最初の項目には、ソート条件例->where('id','>=',15)を付けることができます. ->orderBy('id','desc');//idの逆記述ソートによれば,ascは順序である.
//where()
DB::table('tablename')->where('id','>=',12)->get();
//複数条件
DB::table('tablename')->whereRaw('id >= ? and age >= ?',[12,15])->get();
//pluck()->結果セットを返すフィールド
DB::table('tablename')->pluck('name');
//lists()->結果セットのフィールドを返し、表示フィールドの下付きを定義します.
DB::table('tablename')->lists('name','id');//出力値はid=>name
//select()->固定フィールドの検索を指定
DB::table('tablename')->select('id','name','age')->get();//テーブルのid,name,ageフィールドのデータを検索
//chunk()->セグメント取得、5.4でchunkはorderBy()を使用する必要があります.
DB::table('tablename')->orderBy('id','desc')->chunk(1000,function($tables){
var_dump($tables);//1回に1000個のデータがクエリーされ、セグメント化されます.
if(条件){return false;}//スキップ出力
});
}
//クエリー・コンストラクタでの集約関数
public function testju(){
$count = DB::table('tablename')->count();//統計テーブルのレコード数
$max = DB::table('tablename')->max('age');//出力テーブルのage最大値
$min = DB::table('tablename')->min('age');//最小値
$avg = DB::table('tablename')->avg('age');//へいきんち
$sum = DB::table('tablename')->sum('age');//和を求める
}
}