602SQL-Úplná dokumentace Index  

wb_exec

PHP

resource wb_exec( resource connection, string SQL_statement)


Parametry

connection
Identifikátor otevřeného spojení získaný úspěšným voláním funkce wb_connect nebo wb_pconnect.
SQL_statement
SQL příkaz nebo dotaz, který bude proveden. SQL příkaz může obsahovat klientské proměnné uvozené dvojtečkou. Zadaný příkaz či dotaz může sestávat z více příkazů nebo dotazů oddělených středníkem.


Popis

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.



Návratová hodnota

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.

Viz



Příklad

Použití klientské embedded proměnné:

 $pom="";
 $res=0;  
 $res=wb_exec($conn,"SET :>pom = Who_am_I");
 if ($res) 
   {     echo("Prihlasen jako: ".$pom) ;   }		


Příklad

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");