PHP ADODB kullanarak bir saklı yordam çağırmak için nasıl bir uygun belgelere bulamadı. Birisi lütfen yardımcı olabilir misiniz?
Bu ne var şimdi ve ben kirli bir yaklaşım olduğunu hissediyorum (değil ya?):
$stmt = "CALL LocFillData('foo', 'bar', @nullcount, @totalcount)";
$rsstmt = "SELECT @nullcount, @totalcount";
$rs = $db->Execute($stmt);
$rsstmt = $db->Execute($rsstmt);
var_dump($rsstmt);
Bunun yerine CALL
deyimi hardcoding, çoklu veritabanı standardı için kod herhangi bir yolu var mı?
EDIT 01:
Ben de önerdiği gibi bu kod çalıştı ADODB Manual:
$dbname = DB_DATABASE;
$tbname = TABLE_CONTACT_LOCATIONS;
$stmt = $db->PrepareSP("BEGIN; adodb.LocFillData(:dbname, :tbname, :nullcount, :totalcount); END;");
$db->InParameter($stmt,$dbname,'dbname');
$db->InParameter($stmt,$tbname,'tbname');
$db->OutParameter($stmt,$nullcount,'nullcount');
$db->OutParameter($stmt,$totalcount,'totalcount');
$ok = $db->Execute($stmt) or die($db->ErrorMsg());
echo "<pre>";
var_dump($ok);
echo "</pre>";
Ama sonuç oldu:
object(ADORecordSet_empty)#15 (6) {
["dataProvider"]=>
string(5) "empty"
["databaseType"]=>
bool(false)
["EOF"]=>
bool(true)
["_numOfRows"]=>
int(0)
["fields"]=>
bool(false)
["connection"]=>
bool(false)
}
Ne sorun olabilir? Dokümantasyon Oracle ve MySQL kullanarak duyuyorum. Ama ADODB yöntemleri, tüm veritabanları için aynı olduğuna inanıyoruz.
Herhangi bir yardım için teşekkür ederiz.