|
wb_psql_prepare | 'Prepared' SQL funkce | wb_psql_param_count |
Funkce provede prepared SQL příkaz, jehož identifikátor (resource handle) byl předán v parametru psql.
Pokud SQL příkaz obsahuje nějaké parametry a pokud dosud nebyla hodnota žádného IN parametru předána voláním funkce wb_psql_send_param, lze hodnoty parametrů předat této funkci. V tom případě je nutno k volání této funkce připojit tolik dalších parametrů, kolik je parametrů prepared SQL příkazu. Parametry se předávají v tom pořadí, v jakém jsou uvedeny ve zdrojovém textu SQL příkazu.
Pro každý IN parametr je nutno předat takovou hodnotu, kterou bude možno zkonvertovat na typ příslušného parametru. Pro každý OUT parametr je nutno předat odkaz na PHP proměnnou, která byla inicializována ještě před provedením této funkce (na hodnotě, ani typu této proměnné nezáleží, je pouze nezbytné, aby tato proměnná existovala). Pro každý INOUT parametr je nutno předat odkaz na PHP proměnnou, která obsahuje hodnotu, která má být předána SQL serveru v tomto parametru; tato proměnná bude pro provedení SQL příkazu obsahovat výstupní hodnotu tohoto parametru.
Prepared SQL příkaz lze touto funkcí provádět opakovaně, pokaždé přitom lze zadat jiné hodnoty parametrů SQL příkazu.
Funkce při chybě vrací FALSE. Pokud provedený SQL příkaz způsobil otevření kurzoru, funkce vrátí jeho identifikátor (resource handle) - podobně jako funkce wb_exec. Identifikátor otevřeného kurzoru lze následně použít např. při volání funkce wb_result. Pokud provedený SQL příkaz neotevřel kurzor, funkce vrátí počet záznamů, které byly provedeným SQL příkazem změněny, případně vrátí 1.
Příprava a dvojnásobné provedení SQL příkazu se dvěma parametry k provedení, první je OUT parametr, druhý je IN parametr. Hodnota OUT parametru bude po provedení SQL příkazu přečtena do PHP proměnné $name_var (tato proměnná musí být zinicializována před provedením SQL příkazu). Hodnota IN parametru bude zadána konstantou.
$psql=wb_psql_prepare($connection,"SELECT name INTO ? FROM Person WHERE ID=?"); $name_var=null; wb_psql_execute($psql,$name_var,123); wb_psql_execute($psql,$name_var,456);
Provedeme stejný SQL příkaz, tentokrát ale k přenosu hodnot parametrů použijeme PSQL funkce.
$psql=wb_psql_prepare($connection,"SELECT name INTO ? FROM Person WHERE ID=?"); wb_psql_send_param($psql,1,123); wb_psql_execute($psql); $name_var=wb_psql_get_out_param($psql,0); wb_psql_send_param($psql,1,456); wb_psql_execute($psql); $name_var=wb_psql_get_out_param($psql,0);
wb_psql_prepare | 'Prepared' SQL funkce | wb_psql_param_count |