Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 2. diel - Prvý databázová tabuľka a MySQL ovládače v PHP

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Zdeněk Jurák:16.9.2024 21:13

Ahoj, potřeboval bych aby mi proměnná fungovala i jako určení sloupce:

$id = '1';//$_POST['cond'];
$what = 'alias';//$_POST['what'];
$value = 'lachtan';//$_POST['val'];

Db::connect($server,$db,$db_user,$db_pass);
$update = Db::query('
    UPDATE url
    SET ? = ?
    WHERE id = ?
', $what, $value, $id);

Konkrétně část:
SET ? = ?

vrací mi to chybu:

Fatal error: Uncaught Error: Call to a member function execute() on bool in /web/htdocs1/webname/home/www/url/Db.php:62 Stack trace: #0 /web/htdocs1/webname/home/www/url/Db.php(72): Db::executeStatement(Array) #1 /web/htdocs1/webname/home/www/url/update.php(10): Db::query('\n UPDATE url...', 'alias', 'lachtan', '1') #2 {main} thrown in /web/htdocs1/webname/home/www/url/Db.php on line 62

Můžete mi prosím poradit jak toho docílit za použití toho wraperu Db.php?

Pokud tu čás kódu upravím a manuálně místo prvního otazníku tapíšu název sloupce, tak to funguje -

alias = ?
Avatar
Odpovedá na Zdeněk Jurák
Zdeněk Jurák:16.9.2024 21:39

Vyřešeno:

Db::connect($server,$db,$db_user,$db_pass);
$update = Db::query('
    UPDATE url
    SET '.$what.' = ?
    WHERE id = ?
', $value, $id);
Avatar
Jakub Volný
Člen
Avatar
Jakub Volný:23.11.2024 12:59

Dobrý den, potřeboval by jsem pomoct. Udělal jsem všechno stejně podle IT networku a když spustím svůj php program

// Načtení wrapperu
require_once('Db­.php');
Db::connect('127­.0.0.1', 'databaze_pro_web', 'root', '');
Db::query('
INSERT INTO uzivatele (jmeno, prijmeni, datum_narozeni, pocet_clanku)
VALUES ("Jan", "Novák", "1984-11-03", 17)
');
echo('OK');

tak mi to vyhodí tuto chybu:

Fatal error: Uncaught PDOException: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO) in C:\xampp\htdoc­s\skola\databa­ze\Db.php:55 Stack trace: #0 C:\xampp\htdoc­s\skola\databa­ze\Db.php(55): PDO->__construct('mys­ql:host=127..­..', 'root', Object(Sensiti­veParameterVa­lue), Array) #1 C:\xampp\htdoc­s\skola\databa­ze\index.php(3): Db::connect('127­.0.0.1', 'databaze_pro_we­...', 'root', '') #2 {main} thrown in C:\xampp\htdoc­s\skola\databa­ze\Db.php on line 55

Poprosil bych poradit proč mi to háže tuhle chybu díky.

Avatar
sahlepik
Člen
Avatar
sahlepik:13. februára 9:14

Mám takový začátečnický dotaz. Když přímo v phpMyAdmin vytvářím databázovou tabulku, je tam ještě sloupec "porovnávání" a u textových řetězců mám vybrat kódování. Předpokládám, že když mám HTML dokument v UTF-8 a také soubor s PHP skripty nastaven jako "UTF-8 no BOM" (pracuju v PSPadu), mám vybrat kódování "utf8mb4_czech_ci"? Těch UTF kódování je tam několik a nevím, které je to správné. Databázi jsem vytvořil s kódováním "utf8mb4_czech_ci". Jde mi o to, že když načtu text z databáze a budu jej zpracovávat PHP skriptem, aby se správně interpretovaly a zobrzovaly české znaky s diakritikou.

Pro upřesnění:
Apache/2.4.59 (Win64) PHP/8.3.6 mod_fcgid/2.3.10-dev
Verze databázového klienta: libmysql - mysqlnd 8.3.6
phpMyAdmin verze 5.2.1

Editované
Avatar
Jan Poláček
Tvůrce
Avatar
Odpovedá na sahlepik
Jan Poláček:13. februára 18:25

Ahoj,

PHP scripty mám nastavené stejně, tedy UTF8 bez BOM, co se týče databáze, tak hlavní rozdíly mezi utf8mb3 a utf8mb4 je, že mb4 obsahuje více znaků, jako např. emotikony (základní znaky, jako i české znaky obsahují obě kódování), také je rozdíl, že mb3 si vezme na znak až 3 bajty, mb4 si vezme až 4 bajty na znak a to je přesně důvod, proč si může mb4 dovolit více znaků, může se to tedy projevit na velikosti databáze. Doufám, že to pomůže.
Jinak phpMyAdmin je určitě fajn, ale např. já např. upřednostňuju Adminer
Je to český projekt a je to pouze jeden PHP soubor a jede pro mé účely parádně.

Odpovedať
Instrukce na adrese 0x77104f29 odkazovala na adresu paměti 0x00000014. S pamětí nelze provést operaci: written.
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 5 správy z 145.