【问题标题】:How to create stored procedure laravel如何创建存储过程 laravel
【发布时间】:2016-06-28 14:46:54
【问题描述】:

您好,我一直在寻找有关如何在 Laravel 中指导存储过程的方法,但目前还没有找到。我的问题基本上是我有大量参数需要发送到名为InsertNewApplicant 的存储过程,但我不确定如何构建查询。

这就是我目前所拥有的一切,我不确定我选择将它发送到哪个数据库或如何连接到该数据库。

任何帮助将不胜感激

 $result = DB::select('call InsertNewApplicant(?????????????????????????)',
                    array($firstName, $middleName, $addressLine_1, $addressLine_2, $postCode, $landline, $mobile, $email,
                    $DOB, $maritalStatus, $industry, $occupation, $jobTitle, $selfEmployed, $selfAssessment, $workHome,
                    $ownTransport, $companyVehicle, $paySubs, $otherIncome, $printForms, $marketingUs, $marketingOther,
                    $agreedTNCs, $TNCVersion, $CampaignSource));

这是我的两个数据库 - 我需要将此数据发送到 sqlserv 数据库,所以我不知道该怎么做

'mysql' => [
    'driver' => 'mysql',
    'host' => env('DB_HOST', 'SECRET'),
    'port' => env('DB_PORT', 'SECRET'),
    'database' => env('DB_DATABASE', 'SECRET'),
    'username' => env('DB_USERNAME', 'SECRET'),
    'password' => env('DB_PASSWORD', 'SECRET'),
    'charset' => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix' => '',
    'strict' => false,
    'engine' => null,
],
'sqlsrv' => array(
    'driver' => 'sqlsrv',
    'host' => ' AN IP ADDRESS', // Provide IP address here
    'database' => 'SECRET',
    'username' => 'SECRET',
    'password' => 'SECRET',
    'prefix' => '',
),

【问题讨论】:

    标签: php laravel stored-procedures laravel-5


    【解决方案1】:

    您的第一个任务是配置您的应用程序以连接到您的存储过程所在的数据库。Laravel 网站上有大量文档将指导您如何做到这一点:https://laravel.com/docs/5.1/database

    一个快速的线索是查看您的app/config/database.php 文件。查看该文件后,应该很清楚该怎么做。

    配置数据库后,请确保使用DB::connection() 方法选择正确的数据库。在你的情况下,你会想要:$conn = DB::connection('sqlsrv') 来获得连接。

    添加数据库连接配置后,您应该通过调用DB::select() 方法来调用存储过程。请记住在每个参数占位符(问号)之间包含逗号:

    $conn = DB::connection('sqlsrv');
    $result = $conn->select('call InsertNewApplicant(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
      [
        $firstName, $middleName, $addressLine_1, $addressLine_2, $postCode, 
        $landline, $mobile, $email, $DOB, $maritalStatus, $industry, 
        $occupation, $jobTitle, $selfEmployed, $selfAssessment, $workHome, 
        $ownTransport, $companyVehicle, $paySubs, $otherIncome, 
        $printForms, $marketingUs, $marketingOther, $agreedTNCs, 
        $TNCVersion, $CampaignSource
      ]
    );
    

    【讨论】:

    • 如何插入?我意识到我的意思是这样做,我会在一秒钟内用数据库详细信息更新问题
    • 您的原始问题暗示存储过程是执行实际插入的内容。然后,您将使用 DB::select() 方法选择该存储过程的结果。如果你想直接从 PHP 插入数据库,你可以使用 DB::insert() 方法,你可以在这里阅读更多信息:laravel.com/docs/5.1/database(查找“运行插入语句”)
    • @David Smith 也许你可以帮助我。看看这个:stackoverflow.com/questions/51838922/…
    猜你喜欢
    • 1970-01-01
    • 2016-06-03
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多