julfiker / laravel-sqlsrv
Laravel - SQL Server 连接和存储过程执行及其他
v1.6
2023-02-14 06:51 UTC
Requires
- php: >=7.2
This package is auto-updated.
Last update: 2024-09-24 06:40:54 UTC
README
在安装前,请确保已安装 sqlsrv 和 pdo_sqlsrv for php
SQLSRV 数据库驱动程序用于 Laravel
需要 Microsoft 驱动程序才能在 PHP 应用程序中启用 SQL Server
通过 composer 安装包
composer require julfiker/laravel-sqlsrv
安装后
将服务配置到应用中,请在 config/app.php 中的 providers 下添加以下内容
Julfiker\SqlSrv\SqlSrvServiceProvider::class
在 Laravel 应用程序中使用说明以执行存储过程
$status_code = sprintf("%4000s", ""); $status_message = sprintf("%4000s", ""); $params = [ "p_user_id" => 1, //OUTPUT parameter "o_status_code" => &$status_code, //OUT parameter "o_status_message" => &$status_message, // OUT parameter ]; /** @var PDOStatement $sth */ $sth = DB::executeProcedure('{SCHEMA_NAME}.{PROCEDURE_NAME}', $params); // If you have return sql statement from procedure you can use statement object $sth fetching data like as below $result = $sth->fetchAll(); print_r($result);
您可以根据需要使用输出参数,这些参数将从存储过程端绑定。
您还可以在参数中定义参数类型和长度,例如
$params = [ "p_user_id" => ['value' => 1, 'length' => 400,'type' => PDO::PARAM_INPUT_OUTPUT] //OUTPUT parameter ]; //Note: If you want to assign base64 content with the procedure param then you can keep null into the type and length, otherwise you might got error.
设置数据库日志的说明。
- 在数据库中创建一个表
create table ACCESS_LOG
(
ACTION_NAME nvarchar(max),
MODEL_NAME nvarchar(max),
PROCE_NAME nvarchar(max),
PARAMS_DATA nvarchar(max),
RESPONSE_DATA nvarchar(max),
CREATED_AT datetime,
UPDATED_AT datetime,
CREATED_BY bigint,
UPDATED_BY bigint,
ROW_ID varchar(max)
)
- 在 \config\logging.php 的第 37-43 行添加通道
'channels' => [
'auditLog' => [
'driver' => 'custom',
'handler' => App\AuditLog\LogHandler::class,
'via' => App\AuditLog\LogSetter::class,
'level' => 'debug',
],
- 将 'AuditLog' 目录复制到 \app,路径为 \app\AuditLog
需要帮助吗?
您可以通过以下方式联系我
电子邮件: mail.julfiker@gmail.com
skype: eng.jewel
欢迎您为其进一步的改进/更新或扩展可用性做出贡献。只需发起一个 pull request。
谢谢