Dokumenty a Disk Google: funkcia QUERY. Dopytovanie databázy v PHP pomocou dotazovacieho jazyka

Ďakujem Evgeny Namokonov za pomoc pri príprave materiálu.

Funkcia QUERY umožňuje vybrať požadované riadky z tabuľky pomocou SQL dotazu a zoradiť ich.

Syntax funkcie:

=QUERY(údaje; požiadavka; [hlavičky])

  • údaje sú počiatočný rozsah, ktorý bude spracovaný a z ktorého vytvoríme vzorku;
  • dotaz v jazyku Google Visualization API (identický s SQL), špecifikovaný v úvodzovkách, s výhradou určitých pravidiel, o ktorých budeme diskutovať ďalej;
  • hlavičky - počet riadkov s hlavičkami v zdrojovom rozsahu. Predvolená hodnota je -1 (mínus jeden), čo znamená, že počet riadkov hlavičky sa určí automaticky.

Takže pravidlá pre vytváranie žiadostí:

  1. Žiadosť je uvedená v úvodzovkách.
  2. Dopyt používa kľúčové slová:
    1. SELECT – určuje, ktoré stĺpce zo zdrojovej tabuľky sa majú uvoľniť a v akom poradí. Napríklad: "SELECT A, C, D, B". Ak vynecháte alebo zadáte hviezdičku („SELECT *“) namiesto hlavičiek stĺpcov, všetky stĺpce sa načítajú v pôvodnom poradí.
    2. WHERE je kľúčové slovo, za ktorým nasledujú podmienky, za ktorých sa výber uskutoční. Bez neho sa načítajú všetky riadky v pôvodnom rozsahu.
    3. GROUP BY - zoskupuje hodnoty podľa určených polí.
    4. PIVOT - umožňuje vytvoriť niečo ako kontingenčnú tabuľku, zoskupujúc údaje podľa hodnôt z konkrétneho poľa v zdrojovej tabuľke.
    5. ORDER BY - určuje triedenie. Napríklad: “ORDER BY C DESC” – triedenie podľa stĺpca C v zostupnom poradí.
    6. LIMIT – obmedzuje počet vrátených riadkov. Napríklad: "LIMIT 50".
    7. OFFSET - preskočí zadaný počet riadkov od začiatku rozsahu. Napríklad: "OFFSET 100". V kombinácii s LIMIT, toto kľúčové slovo nadobudne účinnosť ako prvé, čo znamená, že použitie LIMIT 70 OFFSET 30 vráti riadky 31 až 100.
    8. FORMÁT - určuje formát určitých stĺpcov podľa daného vzoru.
    9. LABEL - umožňuje premenovať stĺpce vo výstupe. Napríklad „LABEL MAX(D) ‘Priemer v roku 2016’.“ Namiesto maximálneho roku 2016 budú mať vygenerované výsledky vyhľadávania nadpis „Priemer v roku 2016“.

Pomoc Google pre jazyk dopytov API nájdete tu: https://developers.google.com/chart/interactive/docs/querylanguage

Pozrime sa na pár príkladov využitia QUERY v praxi.

Jednoduchý príklad: výber kníh na určitú tému zo stola

Z jednoduchej zdrojovej tabuľky vytvoríme zoznam kníh podľa tém:

V tomto prípade vyberieme tému z rozbaľovacieho zoznamu na samostatnom hárku:

Funkcia QUERY na vyriešenie tohto problému by vyzerala takto:

=QUERY(knihy„!A1:C; "VYBERTE A, C, KDE B = ""& A1& "OBJEDNAŤ PODĽA C DESC"; 1 )

Načítavame údaje zo stĺpcov A a C v rozsahu 'Knihy'!A1:C. Údaje filtrujeme podľa stĺpca B (predmet) tohto rozsahu pomocou zvoleného kritéria z rozbaľovacieho zoznamu v bunke A1. Zoraďujeme v zostupnom poradí podľa stĺpca C zdrojového rozsahu a do nášho výberu pridáme hlavičky (posledný argument funkcie QUERY = 1).

Zoskupovanie údajov pomocou GROUP BY a PIVOT

Údaje môžete zoskupiť pomocou QUERY pomocou dvoch kľúčových slov: GROUP BY a PIVOT nižšie sa pozrieme na príklady s nimi.

Tabuľka, s ktorou budeme pracovať:

Úlohou bude zobraziť výšku predaja pre každú tému, teda zoskupiť údaje podľa stĺpca B.

Začnime s GROUP BY, Text funkcie bude vyzerať takto:

=QUERY(‘Knihy‘!A1:C6;”vyberte B, súčet(C) skupinu podľa B”)

Poznámka: na to, aby funkcia fungovala, je okrem zoskupovania (skupina podľa B) potrebná aspoň jedna agregačná funkcia, v našom prípade je to suma(C). Pre každý prípad napíšem všetky agregačné funkcie pre QUERY: sum(), max(), min(), avg() a count().

Výsledok nášho vzorca:

Pomocou GROUP BY je možné zoskupiť podľa viacerých stĺpcov, ak to chcete urobiť, jednoducho ich vypíšte ako vo funkcii nižšie a nezabudnite pridať tieto stĺpce do SELECT:

Zoskupovanie pomocou PIVOT.

Upozorňujeme, že tu do SELECT nemusíte písať stĺpec B, podľa ktorého budú údaje zoskupené.

Zatiaľ je rozdiel v tom, že zoskupené prvky sú usporiadané do stĺpcov, a nie do riadkov, ako v GROUP BY.

Pridajme ďalší stĺpec na zoskupenie.

Vidíte - v jednom poli sú zobrazené dva zoskupené stĺpce oddelené čiarkami. Toto je kľúčový rozdiel medzi PIVOT a GROUP BY, ak tam každý stĺpec zoskupenia zaberá samostatný stĺpec, potom v PIVOT získate niečo ako kontingenčnú tabuľku s jedinečnými poľami z niekoľkých prvkov. Mimochodom, pomocou týchto polí môžete potom celkom jednoducho vyhľadať požadovanú hodnotu pomocou GLOOKUP alebo SEARCH.

Vytvárame kontingenčnú tabuľku s priemernými/maximálnymi hodnotami podľa témy

V tomto príklade vytvoríme malú kontingenčnú tabuľku, ktorá bude zobrazovať priemerné hodnoty podľa témy za dva roky:

DOPYT(knihyA1:D; "SELECT avg(C), avg(D) pivot B"; 1 )

Používame podobný rozsah (na rozdiel od predchádzajúceho má tržby za roky 2015 a 2016), vytiahneme priemery stĺpcov C a D (SELECT avg(C), avg(D)) a zoskupíme podľa stĺpca B (predmet).

Výsledný výsledok transponujeme pre pohodlné zobrazenie (pomocou funkcie TRANSPOSE):

Namiesto avg (priemer) môžete použiť iné funkcie, napríklad max (maximálne hodnoty):

Alebo zobrazte priemer aj maximum, ale len pre stĺpec D:

SELECT priem(D), max(D)

Prípad „Výpočet priemerného účtu výberom údajov z určitého dátumu“

Snímka obrazovky ukazuje dátové pole, s ktorým budeme pracovať:

Naša úloha: vybrať linky s predajom od 1. apríla a vypočítať pre ne priemerný príjem pomocou počtu klientov, teda získať vážený priemer.

Poďme začať. Vytvorme QUERY s počtom klientov (stĺpec B) vynásobeným priemerným účtom (stĺpec C) od určitého dátumu:

Správny spôsob použitia dátumu vo vzorci QUERY je:

  • QUERY funguje iba s dátumami vo formáte rrrr-mm-dd. Ak chcete previesť dátum z bunky E1 na tento typ, použite vzorec TEXT s podmienkou „rrrr-mm-dd“;
  • pred dátum a pred apostrof je potrebné napísať dátum;
  • Nemusíte odkazovať na bunku s dátumom, ale napíšte to priamo do QUERY, potom bude vzorec vyzerať takto:
  • Dátum je na oboch stranách ohraničený jednoduchými úvodzovkami (‘).

Vráťme sa k tomu, čo sme dostali. Náš vzorec vytvoril nasledujúce pole údajov:

Ide o radové produkty počtu zákazníkov a priemerného účtu. Aby sme to urobili, musíme ich zhrnúť, zadáme pred vzorec SUM:

Ak chcete získať priemerný šek, výsledný počet sa musí vydeliť celkovým počtom zákazníkov vo vybraných riadkoch. Aby sme posilnili používanie QUERY, použime znova tento vzorec.

Zoberieme predchádzajúci vzorec, zmeníme B*C na súčet (B) a získame nasledujúcu konštrukciu:

Nakoniec skombinujeme vzorce:

Všetko funguje, hurá! 53 (tento výsledok je možné vidieť v popise v ľavom hornom rohu) - priemerný účet zohľadňujúci počet klientov, vypočítaný pomocou váženého priemeru.

Prípad „QUERY a rozbaľovací zoznam“

Zoberme si znamenie s predajom kníh. Na jeho základe vytvoríme zostavu s rozbaľovacím zoznamom so všetkými témami a vzorcom QUERY, ktorý zobrazí knihy vybranej témy a zoradí ich podľa predaja.

Takže rozbaľovací zoznam. Najprv vytvorte nový hárok (povedzme, že naša pôvodná tabuľka je obrovská a všetky analýzy chceme vykonávať na inom hárku). Kliknite pravým tlačidlom myši na bunku A1 a vyberte Kontrola údajov.

IN pravidlá vybrať Hodnota zoznamu, uveďte všetky naše témy oddelené čiarkami a kliknite Uložiť:

Zoznam dopadol takto:

Do susednej bunky A2 zadáme nasledujúci vzorec:

=QUERY(knihy„!A1:C13, "VYBERTE A, C, KDE B = ""& A1& "OBJEDNAŤ PODĽA C DESC")

A poďme si to rozobrať kúsok po kúsku:

  • ‘Knihy’!A1:C13 - počiatočný sortiment, tabuľka s predajmi, knihami a témami.
  • SELECT A, C - tabuľka vygenerovaná funkciou bude obsahovať údaje z týchto stĺpcov, teda názvy kníh a tržby.
  • WHERE B = „»&A1&»“ vyberie iba tie knihy, ktorých predmet (v stĺpci B) sa zhoduje s predmetom uvedeným v bunke A1. Venujte pozornosť syntaxi: text z bunky je uvedený medzi apostrofmi, ktoré odkazujú na text požiadavky. Za nimi sú úvodzovky (zatvoríme text požiadavky), ampersand (text z bunky pripojíme k textu požiadavky), adresa bunky, ďalší ampersand, po ktorom text požiadavky pokračuje v úvodzovkách.
  • ORDER BY C DESC - zoradenie údajov podľa stĺpca B (tržby) v zostupnom poradí.

výsledok:

Zmenou predmetu v bunke A1 na filozofiu získame knihy len o filozofii zoradené podľa predajnosti. Pohodlné.

Ak by naša zdrojová tabuľka mala dátum, mohli by sme ho pridať do podmienky QUERY a zobraziť údaje za vybraný deň, mesiac, týždeň – takto môžeme získať hotový prehľad predaja, ktorý nie je potrebné zakaždým znova zostavovať.

Dopyt vo viacerých rozsahoch údajov

Prvým argumentom funkcie QUERY môže byť pole pozostávajúce z niekoľkých rozsahov údajov. Hlavná vec je, že tieto rozsahy sú tabuľky s rovnakou štruktúrou.

Rozsahy sú oddelené bodkočiarkami v zložených zátvorkách:

=QUERY((Rozsah 1; Rozsah 2; Rozsah 3; Rozsah 4);…

Je dôležité poznamenať: v tomto prípade nie sú stĺpce vo vnútri dotazu označené písmenami, ako v iných prípadoch (A, B, AH, CZ atď.), ale vo forme ColN, kde N je stĺpec číslo.

Kanál „Tabuľky Google – je to jednoduché“ v telegrame

Ďakujem Evgeniy Namokonov za jeho pomoc pri príprave prípadov pre tento článok. Evgeniy a ja prevádzkujeme kanál Telegram pomocou Tabuliek Google.

mysql_db_query — Prepne na zadanú databázu a odošle požiadavku

Popis

Zdroj mysql_db_query (reťazec $databáza , reťazec $ dotaz [, zdroj $link_identifier ])

Vráti ukazovateľ na výsledok dotazu MySQL resp FALSE v prípade chyby. Funkcia sa tiež vráti PRAVDA/FALSE Pre VLOŽIŤ/AKTUALIZOVAŤ/VYMAZAŤžiadosti o označenie úspechu/neúspechu.

mysql_db_query() vyberie zadanú databázu a vykoná zadaný dotaz. Ak nie je zadaný voliteľný parameter ukazovateľa pripojenia, funkcia použije posledné otvorené pripojenie. Ak neexistujú žiadne otvorené spojenia, funkcia sa pokúsi vytvoriť nové, podobné funkcii mysql_connect() volané bez parametrov.

Upozorňujeme, že táto funkcia NIE prepne spojenie späť na predchádzajúcu databázu. Inými slovami, túto funkciu nemôžete použiť dočasne prepnite do inej databázy a spustite dotaz. Späť budete musieť prepnúť manuálne. Dôrazne sa odporúča použiť syntax databáza.tabuľka v SQL dotazoch namiesto použitia tejto funkcie.

pozri tiež mysql_connect() A

zdroj mysql_query(reťazcový dopyt [, identifikátor_odkazu zdroja])

mysql_query() odošle požiadavku do databázy aktívneho servera, na ktorú odkazuje odovzdaný ukazovateľ. Ak je link_identifier vynechaný, použije sa posledné otvorené pripojenie. Ak neexistujú žiadne otvorené spojenia, funkcia sa pokúsi pripojiť k DBMS, podobne ako funkcia mysql_connect() bez parametrov. Výsledok dotazu sa uloží do vyrovnávacej pamäte.

komentár: Reťazec dopytu NESMIE končiť bodkočiarkou.

Iba pre SELECT, SHOW, EXPLAIN, DESCRIBE, mysql_query() vráti ukazovateľ na výsledok požiadavky, príp FALSE ak žiadosť nebola splnená.
V ostatných prípadoch (INSERT, UPDATE, DELETE, DROP atď.), mysql_query() sa vracia PRAVDA v prípade úspešnej žiadosti a FALSE v prípade chyby. Hodnota nie je rovnaká FALSE znamená, že požiadavka bola úspešne dokončená. Neuvádza počet ovplyvnených alebo vrátených riadkov. Je dosť možné, že úspešný dotaz neovplyvní ani jeden riadok.

Nasledujúca požiadavka je nesprávne formulovaná a mysql_query() vráti sa FALSE :

mysql_query() sa tiež považuje za chybné a vráti sa FALSE, ak nemáte dostatočné práva na prácu s tabuľkou uvedenou v požiadavke.

Pri práci s výsledkami dotazu môžete použiť funkciu mysql_num_rows() na nájdenie čísla vráteného dotazom SELECT, riadkov alebo mysql_affected_rows() zistiť počet riadkov spracovaných dopytmi DELETE, INSERT, REPLACE alebo UPDATE.

Len pre dopyty SELECT, SHOW, DESCRIBE, EXPLAIN, funkcia mysql_query() vráti ukazovateľ na výsledok, ktorý možno použiť vo funkcii mysql_fetch_array() a ďalšie funkcie, ktoré pracujú s výsledkami dotazov. Po dokončení práce s výsledkom môžete pomocou funkcie uvoľniť prostriedky použité na jeho uloženie

Myslím, že každý počul o Paretovom pravidle. V akejkoľvek oblasti 20 % úsilia prináša 80 % výsledkov. Napríklad 20 % svojho šatníka nosíte 80 % času, 20 % vašich klientov prináša 80 % vášho príjmu. V Tabuľkách Google je to rovnaké: ak poznáte 20 % existujúcich funkcií, môžete vyriešiť 80 % všetkých možných problémov.

Dopyt považujem za jednu z najužitočnejších funkcií Tabuliek Google. Pomocník Google to však popisuje veľmi povrchne a plná sila tejto funkcie nie je odhalená. Pri bližšom skúmaní je zrejmé, že je schopný nahradiť väčšinu existujúcich funkcií.

Na prácu s QUERY budete potrebovať základné znalosti SQL. Pre tých, ktorí nevedia, nebojte sa, funkcia QUERY skutočne podporuje veľmi základné funkcie SQL.

Syntax dopytu QUERY

QUERY(údaje; požiadavka; [hlavičky])
  • údajov— toto je rozsah buniek, ktoré budú slúžiť ako databáza pre SQL dotaz;
  • žiadosť— text SQL dotazu;
  • hlavičky je voliteľný argument, v ktorom môžete určiť, koľko z prvých riadkov poľa obsahuje hlavičky.

Ak chcete maximalizovať vnímanie ďalších informácií, navrhujem otvoriť a skopírovať nasledujúci hárok Google

V súbore dox, ktorého kópiu ste práve vytvorili, je viacero hárkov. List DB je databáza, ku ktorej budeme pristupovať pomocou funkcie QUERY. Hárky Level obsahujú príklady, na ktoré sa pozrieme v tomto článku. S každou ďalšou úrovňou bude príklad komplikovanejší.

Plán dotazov SQL vo funkcii Dopyt

Akýkoľvek SQL dotaz pozostáva zo samostatných blokov, ktoré sa často nazývajú ohováranie. Funkcia SQL pre funkciu Query používa syntax jazyka dopytov rozhrania Google Visualization API, ktorý podporuje nasledujúce klauzuly:

  • vyberte— zoznam polí, ktoré budú vrátené žiadosťou;
  • kde— obsahuje zoznam podmienok, podľa ktorých sa bude filtrovať dátové pole spracované požiadavkou;
  • skupina podľa— obsahuje zoznam polí, podľa ktorých chcete zoskupiť výsledky;
  • pivot— pomáha vytvárať krížové tabuľky s použitím hodnoty jedného stĺpca ako názvov stĺpcov konečnej tabuľky;
  • zoradiť podľa— zodpovedá za triedenie výsledkov;
  • limit- v tejto časti dotazu môžete nastaviť limit na počet riadkov vrátených dotazom;
  • offset— pomocou tohto ohovárania môžete nastaviť počet prvých riadkov, ktoré nemusia byť spracované dotazom;
  • štítok— toto ohováranie je zodpovedné za názov polí vrátených žiadosťou;
  • formát— zodpovedný za formát výstupných údajov;
  • možnosti - umožňuje nastaviť ďalšie parametre výstupu dát.

Funkcia Hello World for Query (Select).

Poďme na hárok Level_1 a pozrime sa na vzorec v bunke A1.

Dopyt(DB!A1:L1143;"vybrať * limit 100")

Časť vzorca " DB!A1:L1143" je zodpovedný za databázu, z ktorej budeme robiť odber vzoriek. Druhá časť " vyberte * limit 100“ obsahuje samotný text žiadosti. Symbol "*" v tomto prípade znamená vrátenie všetkých polí obsiahnutých v databáze. Používaním " limit 100» Obmedzíme výstup na maximálne 100 riadkov. Toto je príklad najjednoduchšej požiadavky. Z databázy sme vybrali prvých 100 riadkov. Toto je akýsi „Ahoj svet“ pre funkciu Query.

Používame filtre a triedenie (Kde, Zoradiť podľa)

Prejdite na hárok Level_2. Vyberme si len niektoré polia, ktoré potrebujeme a nastavíme podmienky filtrovania a triedenia. Napríklad údaje používame len pre kampane Campaign_1 a Campaign_2 za obdobie 22. – 25. októbra 2015. Zoraďme ich v zostupnom poradí podľa počtu relácií. Ak chcete filtrovať a triediť, musíte do textu požiadavky pridať popis ohovárania Kde A objednať. Na zobrazenie vyššie popísaného príkladu vo výslednej tabuľke potrebujeme polia Kampaň, Dátum a Relácie. Práve tie je potrebné uviesť v ohováraní Vyberte.

Databázové polia sú prístupné cez názvy stĺpcov pracovného hárka, na ktorom sa databáza nachádza.

V našom prípade sú údaje nachádzajúce sa na hárku DB a prístup k určitým poliam zapísané ako názov stĺpcov hárku. Povinné polia sa teda nachádzajú v nasledujúcich stĺpcoch:

  • lúka Dátum— stĺpec A;
  • lúka kampaň— stĺpec B;
  • lúka Relácie- stĺpec G.

Časť požiadavky zodpovedná za zoznam výstupných údajov bude teda vyzerať takto:

Vyberte A, B, G

Ďalej v žiadosti je ohováranie Kde. Pri písaní žiadosti je potrebné ohováranie umiestniť v poradí, v akom bolo popísané v prvej časti tohto článku. Po vyhlásení Kde musíme uviesť podmienky filtrovania. V tomto prípade filtrujeme údaje podľa názvu kampane (Campaign) a dátumu (Dátum). Používame niekoľko podmienok filtrovania. Text dopytu musí medzi všetkými podmienkami obsahovať logický operátor OR alebo AND. Filtrovanie podľa dátumov sa mierne líši od filtrovania podľa číselných a textových hodnôt, vyžaduje použitie operátora Dátum. Časť požiadavky zodpovedná za filtrovanie údajov bude vyzerať takto:

KDE (A >= dátum"2015-10-22" A A<= date"2015-10-25") AND (B = "Campaign_1" OR B = "Campaign_2")

Pomocou zátvoriek sme filtrovanie údajov rozdelili na dve logické časti: prvá filtruje podľa dátumov, druhá filtruje podľa názvu kampane. V tejto fáze vzorec popisujúci údaje, ktoré je potrebné vybrať, a podmienky filtrovania údajov vyzerajú takto:

Dopyt(DB!A1:L1143;" Vyberte A, B, G KDE (A >= dátum"22.10.2015" A<= date"2015-10-25") AND (B = "Campaign_1" OR B = "Campaign_2")")

Môžete ho skopírovať a prilepiť napríklad na nový hárok dokumentu použitého ako príklad v tomto príspevku a získate nasledujúci výsledok:

Okrem bežných logických operátorov (=,<, >) blok WHERE podporuje ďalšie operátory filtrovania:

  • obsahuje— skontroluje obsah určitých znakov v reťazci. Napríklad WHERE A obsahuje 'John' vráti do filtra všetky hodnoty zo stĺpca A, ktoré obsahujú John, napríklad John Adams, Long John Silver;
  • začína s— filtruje hodnoty podľa predpony, to znamená, že kontroluje znaky na začiatku riadku. Napríklad, začína na 'en' vráti hodnoty inžinierstvo a angličtina;
  • končí s— filtruje hodnoty na konci reťazca. Napríklad linka 'kovboj “ sa vráti ako „končí na „chlapec“ alebo „končí na „y“;
  • zápasy— zodpovedá regulárnemu výrazu. Napríklad: kde sa zhoduje ‘.*ia “ vráti hodnoty India a Nigéria.
  • Páči sa mi to - Zjednodušená verzia regulárnych výrazov, pomocou zástupných znakov kontroluje, či sa reťazec zhoduje s daným výrazom. V súčasnosti like podporuje dva zástupné znaky: "%" znamená ľubovoľný počet ľubovoľných znakov v reťazci a "_" znamená ľubovoľný jeden znak. Napríklad "kde názov ako 'free%'" bude zodpovedať riadkom „zadarmo ’, 'Fred “ a „Freddy ’.

Dopyt už vyfiltroval údaje za určité obdobie a ponechal len kampane, ktoré potrebujeme. Zostáva len zoradiť výsledok v zostupnom poradí v závislosti od počtu relácií. Triedenie v týchto dotazoch sa vykonáva tradične pre SQL pomocou ohovárania Zoradiť podľa. Syntax je pomerne jednoduchá: stačí uviesť zoznam polí, podľa ktorých chcete výsledok zoradiť, a tiež určiť poradie zoradenia. Predvolené poradie je vzostupne, teda vzostupne. Ak za názvom poľa zadáte parameter desc, dotaz vráti výsledok v zostupnom poradí od tých, ktoré sú uvedené v ohováraní Zoradiť podľa poliach.

V našom prípade bude za filtrovanie zodpovedný riadok v texte požiadavky:

Objednávka podľa G desc

Konečný výsledok vzorca na hárku Level_2, ktorý rieši problém, ktorý potrebujeme, teda vyzerá takto:

Dopyt(DB!A1:L1143;" SELECT A, B, G WHERE (A >= date"2015-10-22" AND A<= date"2015-10-25") AND (B = "Campaign_1" OR B = "Campaign_2") ORDER BY G DESC")

Teraz môžete použiť jednoduchú syntax SQL a funkciu QUERY na filtrovanie a triedenie údajov.

Zmiešané CDatabase::Query( reťazec sql bool ignore_errors= nepravda, reťazec error_position="", Možnosti poľa=pole() )

Metóda vykoná dotaz do databázy a ak nedôjde k chybe, vráti výsledok. Ak je úspešná, metóda vráti objekt triedy CDBResult.
ignore_errors je "true", potom metóda vráti "false".
Ak sa vyskytne chyba a parameter ignore_errors je "false", potom metóda preruší vykonávanie stránky a najskôr vykoná nasledujúce akcie:

  1. Volanie funkcie AddMessage2Log.
  2. Ak je aktuálny používateľ správcom lokality alebo v súbore /bitrix/php_interface/dbconn.php premenná bola inicializovaná $DBDebug=true;, potom sa na obrazovke zobrazí celý text chyby, inak sa zavolá funkcia SendError.
  3. Súbor bude zahrnutý /bitrix/php_interface/dbquery_error.php, ak neexistuje, súbor bude zahrnutý /bitrix/modules/main/include/dbquery_error.php

Poznámky k verzii Oracle:
1. Ak sa vyskytne chyba, ak bola transakcia otvorená, vykoná sa CDataBase::Rollback.
2. Ak chcete vložiť textové polia ako BLOB, CLOB, LONG atď. (dlhšie ako 4000 znakov), použite metódu CDatabase::QueryBind.
3. Ak je pri vykonávaní SQL dotazu typu "SELECT" vyžadovaná väzba premennej, potom použite metódu CDatabase::QueryBindSelect.

Nestatická metóda.

Analóg metódy v novom jadre D7 - .

možnosti

pozri tiež

Príklady použitia

Funkcia: GetByID
Riadok: "; globálne $DB; $kde = ($GET_BY_SID=="N") ? " F.ID = "".intval($ID)."" " : " F.VARNAME="".$DB- >ForSql($ID,50)."" "; $strSql = " SELECT F.*, F.FIRST_SITE_ID, F.FIRST_SITE_ID LID, F.VARNAME, F.VARNAME SID, ".$DB->DateToCharFunction("F .TIMESTAMP_X"." TIMESTAMP_X, počet (odlišné D1.ID) C_FIELDS, počet (odlišné D2.ID) OTÁZKY, počet (odlišné S.ID) STAVY OD b_form F ĽAVÉ PRIPOJENIE b_form_status S ZAPNUTÉ (S.FORM_ID = F.ID) ĽAVÉ PRIPOJENIE b_pole_formulára D1 ZAPNUTÉ (D1.FORM_ID = F.ID a D1.ADDITIONAL="Y") ĽAVÉ PRIPOJENIE b_form_field D2 ZAPNUTÉ (D2.FORM_ID = F.ID a D2.ADDITIONAL<>"Y") KDE $kde GROUP BY F.ID "; $res = $DB->Query($strSql, nepravda, $err_mess.__LINE__); vrátiť $res; ) ?>

elar 17.09.2009 09:17:22

Tento príklad, hovorený v programovacom jazyku, nie je úplne funkčný.

Trieda "CForm" sa nenašla, možno na to budete musieť nejakým spôsobom dodatočne deklarovať objekt. Požiadavka zobrazuje chybu, pretože V databáze nie sú definované žiadne polia (čo môže byť problém pre mnohých používateľov).

Preto tento kód, bohužiaľ, nie je najlepším príkladom, najmä pre tých, ktorí nemajú veľa skúseností s programovaním pre Bitrix.

Je jednoduchšie použiť túto možnosť:

Výhodou tohto kódu je, že sa spustí na absolútne ľubovoľnej stránke webu a je veľmi jednoduchý.

"Bitrix", 2001-2019, "1C-Bitrix", 2019



zdieľam