2016-06-28 181 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/數據庫(查找「運行插入語句」) –