PHP kullanarak SQL Server saklı yordam çıkış parametreleri alınamıyor

3 Cevap php

Ben bir çıkış parametresi (ERRCODE) yanı sıra, bir resultset dönmek gerekiyordu, bir SQL Server saklı yordamı yürütmek duyuyorum.

Ben aşağıdaki kodu kullanarak PHP prosedürü arıyorum, ama şimdiye kadar çıktı parametresi almak mümkün olmuştur:

$stmt = mssql_init("addFaculty", $this->db);

mssql_bind($stmt, "@FacultyID", $FacultyID, SQLCHAR);
...imagine other parameters here...
mssql_bind($stmt, "@ErrCode", &$ErrCode, SQLINT1, TRUE, FALSE, 1);

$result = mssql_execute($stmt);

echo $ErrCode

$ ERRCODE her zaman '1 'veya '2' dönmelidir bile, 0 olarak yankılandı. Ben SQL Server Studio içinde yordamı çalıştırdığınızda, ancak, 'Mesajlar' sekmesi doğru bir '1 'veya '2' gösterecektir.

Araştırma yaparken, ben çıkış parametreleri erişebilir olması ilk mssql_next_result() kullanmanız gerekir belirtilen bir öneride bulundu. Bunu denedim, ama bu sadece bir PHP döndü

"Uyarı: mssql_next_result (): Verilen argümanı geçerli bir MS SQL_result kaynak değil"

Ben de this thread benzer bir sorun için bir başvuru buldum ama gerçek çözünürlük görmedim.

Bu iş parçacığı kişi gibi, ben PHP5 ve MS SQL Server 2005 ile Linux (CentOS) kullanıyorum.

Herkes bu konuda herhangi bir öneriniz var mı? Ben de bir önceki projede böyle bir sorunu vardı ve ben onu çözemedim, çünkü sonunda, sadece çıkış parametreleri kullanarak vazgeçti (ve bunun yerine PHP tüm error_checking yaptım). (: Bu bir cevap bulmak için güzel olurdu

3 Cevap

Ben bir PHP adam değilim, ama ben this yardımcı olacağını düşünüyorum.

Diyor ki:

Note that when retrieving an output or input/output parameter, all results returned by the stored procedure must be consumed before the returned parameter value is accessible.

EDIT:

Denedim ADODB

Bu sorun benim sonrası kontrol, ben Zend_Db_Table_Abstract uzanan bir sınıf kullanılır. Ben hala buna göre çerçeve kullanarak, saf PHP kullanmayın. Ince olması ve ok çalıştırmak için seens, ben bile geri de resultset alıyorum! Umarım yardımcı olur:

Execute MSSQL stored procedure via Zend Framework