2016-06-28 183 views
1

您好我一直在寻找某种如何指导Laravel中的存储过程,但目前为止找不到任何存储过程。我的问题是基本上我有一个巨大的参数列表,我需要发送到名为InsertNewApplicant的存储过程,但我不知道如何构建查询。如何创建存储过程laravel

这就是我迄今为止的所有内容,我不确定在哪里选择将数据库发送到哪个数据库或如何建立与该数据库的连接。

任何帮助,将不胜感激

$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' => '', 
), 

回答

4

你的第一个任务是将您的应用程序配置为连接到您的存储过程所在的数据库。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 
    ] 
); 
+0

我该如何做插入操作?我意识到我的意思是要这样做,我会在数据库详细信息的第二秒更新问题 – Tfish

+0

您的原始问题意味着存储过程是执行实际插入的内容。然后用'DB :: select()'方法选择该存储过程的结果。 如果您想直接从PHP插入数据库,可以使用'DB :: insert()'方法,您可以在这里阅读更多信息:https://laravel.com/docs/5.1/数据库(查找“运行插入语句”) –