abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 17:44 | Zajímavý článek

    Jak si zobrazit pomocí Chrome a na Chromiu založených webových prohlížečích stránky s neplatným certifikátem? Stačí napsat thisisunsafe.

    Ladislav Hagara | Komentářů: 0
    včera 00:33 | Bezpečnostní upozornění

    V repozitáři AUR (Arch User Repository) linuxové distribuce Arch Linux byly nalezeny a odstraněny tři balíčky s malwarem. Jedná se o librewolf-fix-bin, firefox-patch-bin a zen-browser-patched-bin.

    Ladislav Hagara | Komentářů: 9
    včera 00:22 | Komunita

    Dle plánu by Debian 13 s kódovým názvem Trixie měl vyjít v sobotu 9. srpna.

    Ladislav Hagara | Komentářů: 0
    19.7. 13:22 | Komunita

    Vývoj linuxové distribuce Clear Linux (Wikipedie) vyvíjené společností Intel a optimalizováné pro jejich procesory byl oficiálně ukončen.

    Ladislav Hagara | Komentářů: 1
    18.7. 14:00 | Zajímavý článek

    Byl publikován aktuální přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    18.7. 12:00 | Nová verze

    V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 12.0 (Mastodon). Forgejo je fork Gitei.

    Ladislav Hagara | Komentářů: 1
    17.7. 18:44 | Zajímavý článek

    Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 155 (pdf) a Hello World 27 (pdf).

    Ladislav Hagara | Komentářů: 1
    17.7. 16:11 | Nová verze

    Hyprland, tj. kompozitor pro Wayland zaměřený na dláždění okny a zároveň grafické efekty, byl vydán ve verzi 0.50.0. Podrobný přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 4
    17.7. 15:55 | Komunita

    Patrick Volkerding oznámil před dvaatřiceti lety vydání Slackware Linuxu 1.00. Slackware Linux byl tenkrát k dispozici na 3,5 palcových disketách. Základní systém byl na 13 disketách. Kdo chtěl grafiku, potřeboval dalších 11 disket. Slackware Linux 1.00 byl postaven na Linuxu .99pl11 Alpha, libc 4.4.1, g++ 2.4.5 a XFree86 1.3.

    Ladislav Hagara | Komentářů: 6
    16.7. 21:22 | IT novinky

    Ministerstvo pro místní rozvoj (MMR) jako první orgán státní správy v Česku spustilo takzvaný „bug bounty“ program pro odhalování bezpečnostních rizik a zranitelných míst ve svých informačních systémech. Za nalezení kritické zranitelnosti nabízí veřejnosti odměnu 1000 eur, v případě vysoké závažnosti je to 500 eur. Program se inspiruje přístupy běžnými v komerčním sektoru nebo ve veřejné sféře v zahraničí.

    Ladislav Hagara | Komentářů: 19
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (25%)
     (19%)
     (6%)
     (6%)
     (3%)
     (6%)
     (3%)
     (31%)
    Celkem 32 hlasů
     Komentářů: 4, poslední včera 16:33
    Rozcestník

    Dotaz: MySQL vlastnosti sloupce

    9.5.2016 12:47 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    MySQL vlastnosti sloupce
    Přečteno: 1216×
    Zdravíčko,

    Mám takový podivný problém .. pro editaci záznamu z tabulky používám - mimo jiné - i údaje zjištěné pomocí
    while ( $fieldinfo = $result->fetch_field(){....}

    konkrétně mně zajímá hodnota FLAG NOT_NULL.

    Pokud přidávám nový řádek, načítám "prázdný záznam" pomocí dotazu

    $to_select => to jsou sloupce určené k editaci, $t=> jméno tabulky
    $query = 'SELECT '.$to_select.' FROM (SELECT 1) AS ignore_me LEFT JOIN '.$t.' ON 1 LIMIT 1';
    Tento zápis je netriviální proto, že jsem nenašel rozumný způsob, (je lepší ?) jak ošetřit vkládání prvního řádku do prázdné tabulky ... takto mám k dispozici sloupce tabulky vždy, mají správné atributy, které mohu při editaci použít k nastavení INPUT polí ... ale hodnota flagu NOT_NULL se ztratí ... je vždy FALSE

    mohu to vyřešit tak, že nejprve testnu, zda má tabulka nějaké řádky "SELECT COUNT(ID) .... " , a pokud ano, pak načíst první řádek tabulky, fetchnout vlastnosti, vymazat hodnoty a předhodit k editaci. Nicméně problém prvního řádku zůstává.

    Editace již existujícího záznamu, který vytahuju normálním SELECTem, bez těch ošklivin okolo NOT_NULL zachová.

    Takže, co nechápu, proč nyní používaný způsob nezachová atribut NOT_NULL a zda to nejde ošetřit elegantněji než mnou naznačené řešení.

    Děkuji předem za nakopnutí.

    Řešení dotazu:


    Odpovědi

    Řešení 1× (Milan Uhrák (tazatel))
    9.5.2016 14:18 Filip Jirsák
    Rozbalit Rozbalit vše Re: MySQL vlastnosti sloupce
    Zkusil bych použít mysqli_stmt_result_metadata. A nebo načítat metadata přímo ze systémových tabulek. U toho vašeho LEFT JOINu je logické, že se NOT NULL „ztratí“ – hodnoty vrácené z té pravé tabulky přece mohou být NULL.
    Řešení 1× (Milan Uhrák (tazatel))
    Josef Kufner avatar 9.5.2016 14:20 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: MySQL vlastnosti sloupce
    Šmankote, co to děláš za šílenost?

    Jsou dvě možnosti, jak zjistit sloupce tabulky.
    1. Načíst si informace pomocí SHOW COLUMNS a podobných dotazů (nebo z information_schema, ale na to se vybodni).
    2. Udělat SELECT * FROM tabulka LIMIT 0 a pomocí PDOStatement::getColumnMeta() si vytáhnout metadata o každém sloupci (počet sloupců získáš pomocí PDOStatement::columnCount()).
    To první ti dá detailnější informace, to druhé je výrazně rychlejší a při troše štěstí to stačí (NOT NULL tam je).
    Hello world ! Segmentation fault (core dumped)
    9.5.2016 16:55 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: MySQL vlastnosti sloupce
    Tak oběma děkuji za zajímavé náměty .. no jinak to prostě neumím, tak jsem to napsal tak, jak jsem vygooglil ...

    Zkusím a zhodnotím .. jo a PDO nepoužívám, jen Mysqli .. ten LIMIT 0 vypadá slibně
    Josef Kufner avatar 9.5.2016 17:07 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: MySQL vlastnosti sloupce
    PDO používej, je to hezké, moderní a slušně navržené API, které funguje na mnoha databázích a ušetří ti to spousty starostí.
    Hello world ! Segmentation fault (core dumped)
    9.5.2016 17:51 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: MySQL vlastnosti sloupce
    Také se přimlouvám za PDO. Má spoustu příjemných vychytávek, například oproti MySQLi má lépe vyřešeny Prepared Statements - metoda bindParam(), která mě tak prudila, se stala prakticky zbytečnou.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    9.5.2016 20:02 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: MySQL vlastnosti sloupce
    No .. mám nad Mysqli takovou vlastní nadstavbu, a jsem s tím spokojen, alespoň co se týče mého "stylu" programování.

    "LIMIT 0" funguje bezvadně, jen s drobnou úpravou okolního kódu, paráda, oběma díky

    Mně předtím prostý SELECT .. LIMIT 1 vlastně nevracel nic, a nevěděl jsem, jak z toho "nic" uvařit ty inputy .. pak jsem někde našel to použité řešení .. už to bylo lepší, ale pořád to zlobilo. NOT_NULL používám k "přibarvení" pozadí vstupu, a kontrole před odesláním, jestli není prázdné ... a u nových vět to pochopitelně nefungovalo. Tohle je úplně profi ..

    M.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.