sql >> Databáze >  >> RDS >> Oracle

Uložená procedura volání PHP-OCI s parametry

Pomocí foreach přístup od moje odpověď na další z vašich otázek není dobrý nápad při práci s uloženými procedurami.

I když to funguje (jak je uvedeno ve vaší otázce, proměnné jsou nastaveny v $params pole po spuštění) největším problémem je, že musíte zadat čtvrtý parametr (maxlength ) na oci_bind_by_name . Použili jste statickou hodnotu 32 ve vašem kódu, ale když délka hodnoty překročí tuto hodnotu, dojde k chybě. Nelze ji vypočítat za běhu a její nastavení na velmi vysokou hodnotu je neefektivní (možná to není pro vaši aplikaci problém).

Protože používáte známou uloženou proceduru, měli byste znát maxlength výstupních hodnot v době návrhu a ty lze staticky zadat vložením všech oci_* funkce v getHours() namísto pokusu o abstrahování všech volání customExecute() .




  1. Transponujte dotaz MySQL - potřebujete řádky do sloupců

  2. Smyčka ve spouštěči s hodnotami oddělenými čárkami mysql

  3. Spouštěče přihlášení na serveru SQL Server

  4. Jak hledat vícenásobné hodnoty oddělené čárkami v mysql