Diskuze: MySQL - vkládání záznamu do tabulky
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 14 zpráv z 14.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Však si nechej vypsat chybové hlášení, z toho to většinou bývá patrné.
Chybějící středník za SQL dotazem by dnes už neměl vadit, ale v minulosti to bývalo zdrojem podobných potíží.
Také je dobré jako první SQL dotaz napsat
SET NAMES UTF8;
Záleží však na použitém kódování.
Sice tento zastaralý ovladač MySQL už nepoužívám, ale v návodech jsem vyhrabal, že je nutné místo testu návratové hodnoty otestovat výsledek mysql_errno(). Asi takto:
$result = mysql_query("SQL dotaz;", $spojeni);
if (mysql_errno()) {
echo mysql_errno() . ": " . mysql_error() . "\n";
}
A ještě něco: Nikdy nepoužívej funkci die(). Tato funkce se používá pouze v učebnicích.
V tom případě vidím chybu v definované znakové sadě. Implicitně je v MySQL přednastavena tuším norská - pro nás nepoužitelná.
Nemusí mít tabulka náhodou primární klíč, aby se do ní dalo něco vložit? Jinak by stálo za pokus ladit dotazy přímo v administrační konzoli (tedy v PHPMyAdminovi nebo něčem takovém) než v PHP, konzole ti tu chybu na sto procent napíše. My také nejprve ladíme v konzoli a až poté píšeme výsledek do PHP, ušetříš si tím mnoho problémů.
Primární klíč je potřebný až od 2NF. V MySQL se dá bez problémů používat i 0NF, tedy bez primárního klíče.
Administrační konzole je fajn. Určitě je lepší, než phpMyAdmin. Dá se v ní udělat úplně cokoli, co MySQL umí.
Jinak jsem se spletl, defaultní znaková sada je švédská. Je nutné ji změnit, jinak nepůjdou vkládat řetězce s českými znaky.
Hmm právě že jsem to dělal v jednom programu pro práci s databází (sem
jsem to přepsal do php podoby) a ten program to vždy po... Teď jsem to
udělal v php a PHPMyAdminovi = > tam to všechno jde... Takže to byl ten
debilní program! (ztrávil jsem nad tím celý den
). Ale mohu mít ještě jednu
otázku? Ta už nejspíše bude mojí vinou...
Pokud vyberu záznam:
$jmeno_s_dk = mysql_query("select name_s_dk from names_kategories where name_bez_dk='zaba'",$spojeni);
A následně ho vypíšu (echem), tak se mi záznam vypíše v podobě "resource id#13" , druhý záznam pak "resource id#14". V čem dělám chybu...
Záznamy musíš fatchovat, nejsou z té databáze v takové podobě, abys s nimi mohl hned pracovat - viz PHP tutoriály.
Takže to byla ta nevhodná znaková sada.
Proto místo proměnných se zavádějícím názvem $jmeno_s_dk používám vždy název $result. Je to totiž jen výsledek dotazu, který však neobsahuje data. Ta získáš až funkcí
$row = mysql_fetch_assoc($result);
kterou pro více řádek musíš volat v cyklu.
V novějších ovladačích MySQL je možné celý výsledek stáhnout naráz.
V tom programu jsem právě měl nastavené kódování utf8 czech jako
všude jinde takže tím to asi nebylo, je mi to záhadou... Ale jinak vám
děkuji za pomoc, ušetřili jste mě několikahodinovému "trápení" 
Ale to o nastavení kódování jsi tady nenapsal a ani z toho uvedeného zdrojáku to není patrné.
A my abychom věštili z křišťálové koule.
Zobrazeno 14 zpráv z 14.