Diskuze: sql
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 5 zpráv z 5.
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.


PDO query vrací objekt PDOStatement, který se vyhodnotí jako true, pokud SQL dotaz prošel (bez ohledu na to, zda to nějaké řádky ovlivnilo).
zkus to pozměnit takto:
$sql = "UPDATE host SET rok=:rok WHERE id=:id";
$query = $conn->prepare(sql);
$query ->bindParam(':rok', $rok);
$query ->bindParam(':id', $id);
$query->execute();
if ( $query->rowCount()) {
echo " Nastala zmena na rok .$rok. ";
} else {
echo "Niečo sa pokazilo " . $conn->error;
}
$conn->close();
PS: Do toho SQL ty hodnoty vkládej jako parametry prepared statementu. Pokud
bys to totiž vkládal přímo, můžeš lehce vytvořit nebezpečnou
bezpečnostní díru. Viz. můj článek:
https://www.itnetwork.cz/…vou-aplikaci
nefunguje..
Viz Hejny, pokud je sql dotaz spravne, tak, at uz smaze radek nebo je 0
smazanych, je to true. A jedinou moznosti je zjistit to pres rowCount. Jestli
jeho kod nefunguje, mame tu google, muzes najit 1000 dalsich kodu s pouzitim
rowCount.
Ja pouzivam kod, ktery vypada asi takhle. Netusim, zda nekde resim i
rowCount.
$conn = new PDO(...);
$sth = $conn->prepare($query);
...
$sth_exec = $sth->execute();
if (!$sth_exec)
{
if (!$sth) {echo 'Not sth!';}
echo 'Error query: ' . $sth->errorCode().' '.implode(" - ",$sth->errorInfo());
}
Tak jo, nasel jsem cas kodu i s rowCount. Mam to ale obalene v class. $sql->query mi returnuje $sth. Viz poskladani z predchoziho kodu, ktery jsem upravoval z te me class $sql.
$query = $sql->createDelete($tbl,$data_delete);
$result = $sql->query($query);
if ($sql->sth_exec && $result->rowCount()>0)
{echo "Smazano ".$result->rowCount()."radku";}
else {echo "Error sth nebo smazano 0";}
Ahoj,
mám takto jednoduchou úlohu vyřešenou pomocí PDO a OOP.
Zde je jednoduchý zdroják:
public function zaplat($id)
{
$dotaz = $this->spojeni->prepare("UPDATE `prihlasky` SET `platba` = 'Ano' WHERE `prihlasky`.`id`= '$id' LIMIT 1 ");
$dotaz->execute();
if ($dotaz)
{
echo ("<h1> <center> <span style=color:green>Úspěšně jsi zaplatil");
echo ("<br> Budeš přesměrován<h1> <center>");
header("Refresh: 2; url=../admin/index.php");
}
}
Musíš mít v dotazu, že bude limitován pro 1.
Snad jsem ti pomohl !

Zobrazeno 5 zpráv z 5.