Мне интересно, если это правильный синтаксис при запуске хранимых процедур Microsoft SQL Server, используя cakePHP. Это правильный синтаксис при выполнении хранимой процедуры в 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, я думаю, что этот метод должен работать .. дайте мне знать, что происходит, так как я также хотел узнать, как это делается.