簡體   English   中英

使用CakePHP運行SQL Server存儲過程

[英]Running a sql server stored procedure using CakePHP

我想知道這是否是使用cakePHP運行microsoft sql server存儲過程的正確語法。 在CakePHP中執行存儲過程時,這是正確的語法嗎?

$this->Main->query("Exec uspGetVendorVehicleManifest '1/6/2014', 'wali.americantour', @pcolVehicleVendorIDInt = 1,@pRouteFrom = 0, @pRouteTo = 0");

存儲過程具有以下參數:

    @pDate              AS DATE,
    @pUserID            AS VARCHAR(50),
    @pRegionIDInt       AS INT,
    @pPortIDInt         AS INT,
    @pcolVehicleVendorIDInt AS INT,

    @pStartRow          AS INT,
    @pMaxRow            AS INT,
    @pLoadType          AS INT,
    @pOrderby           AS VARCHAR(20),

    @pRouteFrom         AS TINYINT,
    @pRouteTo           AS TINYINT,
    @pCityFrom          AS VARCHAR(5),
    @pCityTo            AS VARCHAR(5),
    @pStatus            AS VARCHAR(4),
    @pRole              AS VARCHAR(50)

我只使用一些參數,因為其他參數不是必需的。

它是否正確?

我終於找到了解決方案。 您可以使用exec命令,然后將值添加到您將使用的參數中。

$this->ControllerName->query("exec storedProcedure @param1 = 1");

雖然我注意到當我在cakephp上運行它時,使用php 5.5,apache服務很可能會崩潰。 可能是因為我使用的是非正式的phppdo。

試試這樣

我假設您的程序名稱是uspGetVendorVehicleManifest

$query = "call uspGetVendorVehicleManifest('1/6/2014', 'wali.americantour', @pcolVehicleVendorIDInt = 1,@pRouteFrom = 0, @pRouteTo = 0)";

$result = $this->query($query);

我使用mysql的過程方法,因為在引擎蓋下,cakephp使用pdo我認為這個方法應該有效..讓我知道會發生什么,因為我也想知道它是如何完成的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM