|
![]() | 'Prepared' SQL funkce | wb_psql_prepare | ![]() |
Parametry označujeme v SQL příkazu znakem otazník ? (na rozdíl od parametrů v SQL příkazech prováděných funkcí wb_exec). Parametry, z hlediska směru přenosu hodnoty, mohou být IN, OUT i INOUT. Seznam parametrů můžeme předat funkci wb_psql_execute (existuje i další možnost, jak předávat hodnoty parametrů). Hodnoty IN a INOUT parametrů se předají SQL serveru, SQL příkaz se provede a hodnoty OUT a INOUT parametrů se přečtou a zapíší do zadaných PHP proměnných.
Parametry SQL příkazu lze buď předat ve formě parametrů volání funkce wb_psql_execute, nebo lze hodnoty IN parametrů předat funkcí wb_psql_send_param a hodnoty OUT parametrů přečíst funkcí wb_psql_get_out_param.
V případě INOUT parametru musí být jeho hodnota předána do SQL příkazu (jako hodnoty IN parametrů) a zároveň musí (resp. může) být jeho hodnota přečtena (jako v případě OUT parametrů).
Pro jakýkoliv typ IN parametru platí, že pokud bude jako jeho hodnota předána PHP hodnota NULL, pak bude SQL serveru předána SQL hodnota NULL odpovídajícího databázového typu.
typ IN parametru (db. typ) | přípustné PHP hodnoty |
BOOLEAN | hodnoty typu boolean, resp. takové, které lze převést na tento PHP typ |
TINYINT, SMALLINT, INTEGER, BIGINT | hodnoty typu int, resp. takové, které lze převést na tento PHP typ; pokud hodnota přesahuje rozsah daného db. typu, bude vyvolána chyba |
NUMERIC, DECIMAL, REAL | hodnoty typu float, resp. takové, které lze převést na tento PHP typ; pokud hodnota přesahuje rozsah daného db. typu, bude vyvolána chyba |
CHAR(N), CLOB | hodnoty typu string, resp. takové, které lze převést na tento PHP typ |
NCHAR(N), NCLOB |
hodnoty typu string, resp. takové, které lze převést na tento PHP typ; navíc:
předaná hodnota bude na SQL server odeslána až po její konverzi do kódování UCS-2, původní PHP hodnotu to ale neovlivní |
DATE |
|
TIME |
hodnota typu string, resp. taková hodnota, kterou lze na tento typ zkonvertovat; string musí být validním zápisem konstanty typu TIME dle požadavků funkce z 602SQL API Str2time |
TIMESTAMP |
|
Hodnota NULL bude vždy vrácena jako PHP hodnota NULL.
typ OUT parametru (db. typ) | PHP hodnota |
BOOLEAN | PHP typ boolean |
celočíselné typy do velikosti 32 bitů tj. TINYINT, SMALLINT a INTEGER | PHP typ int |
BIGINT | pokud lze hodnotu reprezentovat PHP typem int (který je 32-bitový), pak bude vrácena jako hodnota tohoto typu, jinak bude vrácena jako hodnota typu float, ale v tom případě pravděpodobně dojde ke ztrátě přesnosti čísla |
NUMERIC, DECIMAL, REAL | PHP typ float |
CHAR(N), CLOB | PHP typ string |
NCHAR(N), NCLOB | PHP typ string, přičemž vrácený string bude v kódování UTF-8 |
DATE | PHP typ int, přičemž vrácené číslo bude přestavovat Unix time první sekundy (tj. času 00:00) toho dne, který je reprezentován hodnotou typu DATE |
TIME | PHP typ string, přičemž vrácený řetězec bude obsahovat zápis daného času |
TIMESTAMP | PHP typ int, přičemž vrácené číslo bude přestavovat Unix time časového okamžiku reprezentovaného danou hodnotou typu TIMESTAMP |
BINARY(N), BLOB |
PHP typ string, přičemž každý bajt dané binární hodnoty bude reprezentován dvěma znaky, které jsou zápisem daného bajtu v hexadecimální číselné soustavě např. bajt s ASCII kódem 32 (dekadicky) bude reprezentován podřetězcem "20", nebo bajt s ASCII kódem 13 (dekadicky) bude reprezentován podřetězcem "0d" |
![]() | 'Prepared' SQL funkce | wb_psql_prepare | ![]() |