|
wb_client_encoding | Pomocné funkce | wb_script_encoding |
Tato funkce nastavuje:
Lze nastavit jedno z následujících kódování:
Toto nastavení se uplatní při provádění SQL příkazu, který obsahuje odkazy na PHP proměnné (host variables - uvozené pomocí :<> nebo dynamické parametry označené otazníkem v prepared příkazech) s texty (tj. PHP proměnné typu string), pomocí funkce wb_exec resp. wb_psql_execute. Pokud bude při provádění SQL příkazu nastaveno kódování WB_ENC_UTF8, budou hodnoty PHP proměnných typu string, které jsou použity v SQL příkazu, zkonvertovány z kódování UTF-8 do kódování UCS-2 a v tomto kódování budou předány SQL serveru. 602SQL server totiž nepodporuje kódování UTF-8, ale pouze UCS-2.
Dále je toto nastavení uplatněno při provádění funkce wb_lob_write. Pokud je nastaveno WB_ENC_UTF8, pak se data před zápisem do NCLOBu (Unicode text proměnné délky) zkonvertují z kódování UTF-8 do kódování UCS-2.
Pokud je nastaveno jedno z kódování WB_ENC_ASCII, WB_ENC_WIN1250, WB_ENC_WIN1252, WB_ENC_ISO_8859_2, pak při zápisu řetězce do sloupce, nebo dynamického parametru typu NCHAR, resp. NCLOB (Unicode řetězec pevné délky, resp. Unicode text proměnné délky) bude tento řetězec zkonvertován do kódování UCS-2 a zapsán.
Toto nastavení se neuplatňuje při čtení hodnot z databáze pomocí wb_result, resp. wb_fetch_into, ani se neuplatňuje při předávání PHP proměnných, které nejsou typu string. Neuplatňuje se ani při volání funkce wb_lob_read.
TRUE při úspěchu, FALSE při chybě (když kódování, které má být nastaveno, není podporováno).
Zapsání řetězce v kódování UTF-8 do sloupce typu NCHAR :
/* nechť v proměnné $str je řetězec v kódování UTF-8, který chceme zapsat do sloupce UNI_STR v tabulce UNI_TABLE */ // nejdříve nastavíme kódování PHP proměnných s texty, které budeme předávat do SQL příkazu wb_set_client_encoding($connection , WB_ENC_UTF8); // a hodnota proměnné $str bude předána SQL serveru v kódování UCS-2 wb_exec($connection,"INSERT INTO UNI_TABLE(UNI_STR) VALUES(:<str);"); // pokud chceme nyní předávat do SQL příkazů PHP proměnné s texty v kódování ASCII, // musíme změnit kódování wb_set_client_encoding($connection,WB_ENC_ASCII); // a můžeme provést SQL příkazy
Zapsání řetězce v kódování Windows CP 1250 do sloupce typu NCHAR:
// předpokládáme, že tento zdrojový text je napsán v kódování Windows CP 1250 $str="příliš žluťoučký kůň úpěl ďábelské ódy"; // nastavíme kódování Windows CP 1250 wb_set_client_encoding($connection, WB_ENC_WIN1250); // připravíme SQL příkaz $stmt=wb_psql_prepare($connection, "INSERT INTO UNI_TABLE(UNI_STR) VALUES(?);"); // provedeme SQL příkaz wb_psql_execute($stmt, $str); // můžeme nastavit původní kódování wb_set_client_encoding($connection, WB_ENC_ASCII);
wb_client_encoding | Pomocné funkce | wb_script_encoding |