|
|
| '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 |