|
wb_select_db | Rozhraní PHP | wb_data_seek |
Funkce vykoná SQL příkaz nebo otevře dotaz uvedený jako druhý parametr. SQL příkaz (otevření dotazu) lze vykonat i voláním funkcí wb_psql_prepare a wb_psql_execute, blíže viz prepared SQL funkce, kde je uvedeno také srovnání PSQL funkcí a funkce wb_exec.
Pokud SQL příkaz obsahuje klientské proměnné (host variables), je na místo odpovídajícího parametru dosazen obsah proměnné PHP (viz příklad). Proměnná musí být adekvátního typu: databázové typy BOOLEAN, REAL a INTEGER odpovídají typům boolean, float a long v PHP; pro CLOB bude použita řetězcová proměnná, a pokud je parametr výstupní, bude podle potřeby velikost proměnné zvětšena až na velikost danou hodnotou parametru wb_longreadlen.
Předávání hodnot textových PHP proměnných je ovlivněno aktuálním nastavením kódování PHP proměnných obsahujících text, toto kódování se nastavuje funkcí wb_set_client_encoding. Pokud je nastaveno kódování WB_ENC_UTF8, tak se hodnoty PHP proměnných typu string zkonvertují z kódování UTF-8 do kódování UCS-2 a tato hodnota se předá SQL serveru.
Je možné také předávat v klientských proměnných hodnoty typu TIME, TIMESTAMP nebo DATE, ale pouze tehdy když konfigurační parametr wb_datestring má hodnotu wb_datestring=="1". Pak se při provádění wb_exec() převedou host variables typu string (v PHP, tj. v PHP to jsou stringy), které obsahují syntakticky správně (podle pravidel SQL v 602SQL) zapsanou konstantu typu DATE, TIME, nebo TIMESTAMP, na odpovídající datový/časový typ, tj. 602SQL server dostane tyto host variables zkonvertované do datového/časového typu. Ostatní host variables typu string zůstanou nezměněny. Pokud je wb_datestring=="0", tak se takové konverze neprovádějí.
Konfigurační parametr wb_datestring se nastavuje standardní PHP funkcí ini_set() (viz. dokumentace k PHP). Jeho hodnotu můžete také uvést v souboru PHP.INI. Pokud v něm není hodnota tohoto parametru nastavena, použije se standardní hodnota 0.
Je-li výsledkem volání funkce identifikátor kurzoru, je tento kurzor uzavřen tehdy, když na něj neexistuje odkaz v PHP programu, nebo explicitním voláním wb_close s identifikátorem kurzoru jako s parametrem, nebo automaticky na konci PHP scriptu.
Při chybě vrací FALSE (popis chyby lze získat pomocí wb_err_str).
Při úspěchu:
Pokud SQL příkaz obsahoval více příkazů oddělených středníkem a všechny se povedly, návratová hodnota odráží výsledek prvního z nich.
Použití klientské embedded proměnné:
$pom=""; $res=0; $res=wb_exec($conn,"SET :>pom = Who_am_I"); if ($res) { echo("Prihlasen jako: ".$pom) ; }
Použití klientské proměnné typu timestamp:
// připravíme údaje do lokálních proměnných $retez="timestamp "; $cislo=4; $ts_val="12.5.2002 12:11:10"; // řetězec s konstantou typu TIMESTAMP zapsanou podle pravidel jazyka SQL implementovaného v 602SQL $sql="INSERT INTO Test(id,word,ts_value) VALUES(:<cislo,:<retez,:<ts_val)"; // nastavíme konfigurační parametr wb_datestring na 1 ini_set("wb_datestring","1"); // provedeme SQL příkaz wb_exec($conn,$sql); // můžeme nastavit wb_datestring na standardní hodnotu, abychom zamezili provádění konverzí v dalších SQL příkazech ini_set("wb_datestring","0");
wb_select_db | Rozhraní PHP | wb_data_seek |