İşim özel PHP uygulamaları için yeni bir Linux sunucu ortamında Bizim Windows üretim web sunucusu kapalı bizim PHP web uygulamaları tüm hareketli sürecinde. Yapışkan kısmı, biz MSSQL veritabanlarını kullanarak koşuyoruz PHP uygulamalarının çeşitli olduğunu ve bu nedenle tüm DB bağlantısı () mssql_connect desteklemiyor Linux üzerinde PHP beri unixODBC / freetds kullanmak için yeniden yazılmış olması ve ilgili bulunuyor fonksiyonları.
Ben aşağı bağlantı kazanılmış ettik ve temel sorgular cezası idam. Ben yaşıyorum sorun saklanan prosedürleri çalışan ve ODBC üzerinden mssql_init () / mssql_bind () / mssql_execute () işlevselliği kopyalayan ile.
Ben üzerinde çalışıyorum sorun alanı şöyledir:
$sp = mssql_init('sp_Search', $this->_link);
mssql_bind($sp, '@search', $this->_searchString, SQLVARCHAR);
$results = mssql_execute($sp);
Ben çeşitli ODBC fonksiyonları ve MSSQL işlevleri hakkında bir sürü okudum. (Ben her zaman SQL sunucusu HY000 hata kodları alabilirsiniz) boşuna odbc_prepare () / odbc_execute () işlevleri kullanarak denedim. Ben geldim yakın şudur:
$results = odbc_exec($this->_link, "EXEC sp_Search @search='@this->_searchString'");
MSSQL Yönetim Konsolu ile bu sorguyu ("EXEC sp_Search @ search = 'falan'") çalışan mükemmel çalışır, ancak PHP ile çalışacak gibi görünüyor, ama ben sonuç kümesinden satır getirmek için çalışırsanız, ben "yok dizilerini olsun Bu sonuç, index "hataları at. Ve odbc_next_result () ne olursa olsun false döndürür.
Ben de SQL_CUR_USE_ODBC bağlantı imleci ayarlama çalıştı ama o da yardım etmedi. Herkes herhangi bir deneyimi bu yapan var mı? Hatta mümkün mü, ya da işlevselliği yerel MSSQL sürücü olmadan sadece mevcut değil mi?
Edit:
Şöyle Sadece netleştirmek için, I () (odbc_prepare kullanarak denedim) ve odbc_execute adres:
$results = odbc_prepare($this->_link, "{CALL sp_Search(?)}");
$params = array($this->_searchString);
odbc_execute($results, $params);
Bu şu hatayla sonuçlanır:
Warning: odbc_execute(): SQL error: Failed to fetch error message, SQL state HY000 in SQLExecute