Laravel 1.简介 Laravel 是一个 Web 应用框架, 有着表现力强、语法优雅的特点。Web 框架为创建应用提供了一个结构和起点,你只需要专注于创造,我们来为你处理细节。
Laravel 致力于提供出色的开发体验,同时提供强大的特性,例如完全的依赖注入,富有表现力的数据库抽象层,队列和计划任务,单元和集成测试等等。
本文介绍 laravel 该如何连接使用瀚高数据库。
2.加载驱动 具体操作步骤请参考 php_pdo_pgsql 接口说明文档。
3.数据库连接 3.1.数据库准备 create database laravel; CREATE TABLE student( id bigserial NOT NULL, name character varying(255) NOT NULL, sex character varying(255) NOT NULL, age integer NOT NULL, created_at timestamp without time zone, updated_at timestamp without time zone, PRIMARY KEY (id ) );
3.2.数据库配置 环境变量文件 .env
配置示例
DB_CONNECTION=pgsql DB_HOST=192.168.100.101 DB_PORT=5866 DB_DATABASE=laravel DB_USERNAME=sysdba DB_PASSWORD=Qwer@1234
应用配置文件 database.php
配置示例:
使用env函数,表示先从.env文件里面获取, 如果获取成功则使用, 如果获取失败, 则使用env函数的第二个参数
<?php use Illuminate\Support\Str; return [ /* |-------------------------------------------------------------------------- | Default Database Connection Name |-------------------------------------------------------------------------- | 默认数据库连接为mysql,可以在.env 文件中修改DB_CONNECTION的值 */ 'default' => env ('DB_CONNECTION' , 'pgsql' ), /* |-------------------------------------------------------------------------- | Database Connections |-------------------------------------------------------------------------- | 针对不同数据库相关配置,包括sqlite、mysql、Postgres、SQL Server */ 'connections' => [ ... 'pgsql' => [ 'driver' => 'pgsql' , 'url' => env ('DATABASE_URL' ), 'host' => env ('DB_HOST' , '127.0.0.1' ), 'port' => env ('DB_PORT' , '5432' ), 'database' => env ('DB_DATABASE' , 'forge' ), 'username' => env ('DB_USERNAME' , 'forge' ), 'password' => env ('DB_PASSWORD' , '' ), 'charset' => 'utf8' , 'prefix' => '' , 'prefix_indexes' => true , 'schema' => 'public' , 'sslmode' => 'prefer' , ], ], ];
3.3.增加数据库记录 namespace App\Http\Controllers; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\DB; class StudentController extends Controller { /** * 数据写入 * * @return Response */ public function insert () { DB::insert("insert into student(name, sex, age) values (?,?,?)" ,['李四' , '女' ,'20' ]); DB::insert("insert into student(name, sex, age) values (?,?,?)" ,['王五' , '男' ,'18' ]); $res ="数据写入成功!" ; echo $res ; } }
3.4.查询数据库记录 /** * 列表查询 */ public function select () { $students = DB::select ('select * from student' ); echo json_encode($students ); }
3.5.更新数据库记录 /** * 更新数据 */ public function update () { DB::update("update student set age=30 where name='李四'" ); $res ="数据更新成功!" ; echo $res ; }
3.6.删除数据库记录 /** * 删除数据 */ public function delete () { DB::delete("delete from student where name='王五'" ); $res ="数据删除成功!" ; echo $res ; }
4.常见问题 1)could not find driver报错
问题原因:php未成功加载pdo_pgsql扩展
解决方案:php.ini 文件,检查pdo_pgsql是否加载成功
**2)SQLSTATE[08006] [7] authentication method 13 not supported **
问题原因:瀚高数据库支持的认证密码加密方式包括 md5, sm3 和 scram-sha-256 ,报错是因为使用了sm3,驱动不支持国密算法
解决方案一:数据库密码认证方式修改为 md5 或 scram-sha-256
解决方案二:下载替换对应版本的驱动,具体操作方法请参考 php_pdo_pgsql 接口说明