Bu yazılanlar için birkaç benzer soru var. Ancak bu kodun çalışmasının bir yolunu bulamadım.SQL Server ile PHP PDO ve hazırlanmış deyimler
Özellikle ODBC'yi kullanmak için PDO kullanmak için yerel MSSQL sorgularından bir PHP codebase'i güncelleştiriyorum. İşte eski kod ve denediğim iki varyasyon.
Eski stil: İşleri, Bu beklenen bir dizi sonuç üretir. PDO ile
$db = mssql_connect('connection', 'user', 'password');
mssql_select_db('database', $db);
$sp = mssql_init('procedure', $db);
$param=1;
$results=[];
mssql_bind($sp,'@param',$param,SQLINT4,FALSE,FALSE);
$spRes = mssql_execute($sp);
while ($row = mssql_fetch_array($spRes, MSSQL_ASSOC)) $results[] = $row;
mssql_free_statement($sp);
var_dump(results);
kullanma T-SQL neredeyse çalışır: Ben sürece herhangi parametreleri bağlamak etmeye kalkma olarak sonuç almak.
$pdo = new PDO($'dblib:host=connection', 'user', 'password');
$pdo->query('use database');
$sp= $db->prepare("EXEC procedure");
$sp->execute();
while ($row = $sp->fetch(PDO::FETCH_BOUND)) $results[] = $row;
$sp->closeCursor();
var_dump(results);
Çok sayıda beklenen sonuçtan oluşan bir dizi üretir. Ancak, parametreleri bağlama girişimleri, boş bir dizi olan $results
'a yol açar. Hata bildirilmedi.
$sp= $db->prepare("EXEC procedure :param");
$sp->bindParam(':param', $param, PDO::PARAM_INT);
Bu, boş bir sonuç kümesine yol açar ve hata bildirir.
ODBC "SQL" kullanılması hiç işe görünmüyor:
$pdo = new PDO($'dblib:host=connection', 'user', 'password');
$pdo->query('use database');
$sp= $db->prepare("CALL procedure");
$sp->execute();
while ($row = $sp->fetch(PDO::FETCH_BOUND)) $results[] = $row;
$sp->closeCursor();
var_dump(results);
$results
boş; Parametreler olsun ya da olmasın, işe yaramıyor.
Sistem ayrıntıları: Unbodbc & freetds yüklü Ubuntu Trusty (14) üzerinde PHP 5.5.9 çalıştıran.
MSSQL ile saklı yordamları ve bağlanma parametrelerini çağıran PHP PDO'nun çalışan bir örneğini gerçekten takdir ediyorum.
http: // st ackoverflow.com/a/32224294/285587? –
Yardım aldıktan sonra. Şimdi $ pdo = new PDO ('odbc = connection', 'user', 'password') ile bağlantı yapıyorum; ”Ancak, adlandırılmış parametrelere bağlanma hala çalışmıyor. –
Değişikliklerinizi sorgunuza göre düzenleyin, her ikisini de ilk başta neyle ilgilendiğinizi ve neye değiştiğinizi koruyun. – TallTed