データベースDb操作
1つは、データベース構成です。
デフォルトでは、configディレクトリにdatabase.phpファイルがあり、デフォルトのデータベース情報は次のように構成されています。
<?php
return [
// 默认使用的数据库连接配置
'default' => env('database.driver', 'mysql'),
// 自定义时间查询规则
'time_query_rule' => [],
// 自动写入时间戳字段
// true为自动识别类型 false关闭
// 字符串则明确指定时间字段类型 支持 int timestamp datetime date
'auto_timestamp' => true,
// 时间字段取出后的默认时间格式
'datetime_format' => 'Y-m-d H:i:s',
// 数据库连接配置信息
'connections' => [
'mysql' => [
// 数据库类型
'type' => env('database.type', 'mysql'),
// 服务器地址
'hostname' => env('database.hostname', '127.0.0.1'),
// 数据库名
'database' => env('database.database', ''),
// 用户名
'username' => env('database.username', 'root'),
// 密码
'password' => env('database.password', ''),
// 端口
'hostport' => env('database.hostport', '3306'),
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => env('database.charset', 'utf8'),
// 数据库表前缀
'prefix' => env('database.prefix', ''),
// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
'deploy' => 0,
// 数据库读写是否分离 主从式有效
'rw_separate' => false,
// 读写分离后 主服务器数量
'master_num' => 1,
// 指定从服务器序号
'slave_no' => '',
// 是否严格检查字段是否存在
'fields_strict' => true,
// 是否需要断线重连
'break_reconnect' => false,
// 监听SQL
'trigger_sql' => env('app_debug', true),
// 开启字段缓存
'fields_cache' => false,
],
// 更多的数据库配置信息
],
];
ここmysql
では、データベースがデフォルトで使用されており、データベース構成情報が最初env
に環境構成ファイルから読み取られていることがわかります。そうでない場合は、デフォルトのパラメーターが使用されます。
.env
ファイルデータベース構成(独自のデータベース情報に従って変更):
[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = tp6_test
USERNAME = root
PASSWORD = root
HOSTPORT = 3307
CHARSET = utf8
DEBUG = true
次に、データベースにアクセスします
1.ファサードモードを使用したDbクラス
新しいData
コントローラーを作成する場合、ここで注意する必要があるのは、facade\Db
使用されるクラスです。これは、TP5で使用されるクラスとはthink\Db
異なります。
<?php
namespace app\controller;
use app\BaseController;
use think\facade\Db;
class Data extends BaseController
{
public function index(){
$result = Db::table("demo")->where("id",1)->find();
dump($result);
}
}
2.コンテナ方式の使用
$result = app("db")->table("demo")->where("id",1)->find();
第三に、データベースは異常なデータデバッグを返します
1.APP_DEBUGを開きます
.env
設定するには、ファイル
APP_DEBUG = true
次に、ブラウザのアクセスページの右下隅にデバッグボタンがあり、クリックしてSQLステートメントを表示します。返されたデータに問題がある場合は、生成されたSQLステートメントが間違っているかどうかを確認するか、ビジュアルデータベース管理ツールで実行できます。
2.SQLステートメントを出力します
fetchSql()
SQLステートメントを返すことができます。
$result = Db::table("demo")->where("id",1)->fetchSql()->find();
dump($result);
getLastSql
静的メソッドを使用してSQLステートメントを取得することもできます。
$result = Db::table("demo")->where("id",1)->find();
dump(Db::getLastSql());
印刷結果は上記と同じです。
第4に、CURD操作の追加、削除、チェック、および変更
1.追加
public function add(){
$data = [
"username" => "wangwu",
"password" => "789"
];
$result = Db::table("demo")->insert($data);
dump(Db::getLastSql());
dump($result);
}
2.削除
public function delete(){
$result = Db::table("demo")->delete(1);
dump(Db::getLastSql());
dump($result);
}
3.更新
public function update(){
$result = Db::table("demo")->where("id","2")->update(["password"=>"abc"]);
dump(Db::getLastSql());
dump($result);
}