IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: phpmyadmin fatal error

Aktivity
Avatar
Petr Marek
Člen
Avatar
Petr Marek:26.5.2017 0:18

Dobrý den, vytvořil jsem si databázi v phpmyadmin, v ní tabulku. V PC mám dva php soubory:
Index.php:

require_once('Db.php');
Db::connect('127.0.0.1', 'databaze_pro_web', 'root', 'heslo');
Db::query('
        INSERT INTO uzivatele (jmeno, prijmeni, datum_narozeni, pocet_clanku)
        VALUES ("Jan",  "Novák",  "1984-11-03", 17)
');
echo('OK');

Druhý se jmenuje Db.php. A v něm jsou různé funkce. v tom index.php používám funkci connect. Ta má v Db.php následující kód:

public static function connect($host, $database, $user, $password)
{
        if (!isset(self::$connection)) {
                $dsn = "mysql:host=$host;dbname=$database";
                self::$connection = new PDO($dsn, $user, $password, self::$options);
        }
}

Problém je v tom, že při spuštění index.php se zobrazí následující chyba:

Fatal error: in C:\Users\jakub_m2\Des­ktop\php\USBWeb­server v8.6\root\Db.php on line 48

Na tom řádku 48 je tohle:

self::$connection = new PDO($dsn, $user, $password, self::$options);

Neví někdo kde je chyba? (Do databáze se nic nepřidá)
Ještě chci podotknout, že jsem postupoval podle zdejšího tutoriálu:
https://www.itnetwork.cz/…sql-ovladace

 
Odpovědět
26.5.2017 0:18
Avatar
kaskader202
Člen
Avatar
Odpovídá na Petr Marek
kaskader202:26.5.2017 12:37

A máš tam ty dvě privatní proměnné ($connection,$op­tions) ?

 
Nahoru Odpovědět
26.5.2017 12:37
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Petr Marek
David Hartinger:26.5.2017 13:50

Vždycky mě pobaví, jak řešíte chybu v tom zdejším Db.php souboru :) Ta chybová hláška má určitě nějaký text, že sem dáš že nastala v metodě připoj je sice hezké, ale jak pokračuje jsi neřekl. Pravděpodobně říká něco jako že máš špatné zadané připojovací údaje.

Nahoru Odpovědět
26.5.2017 13:50
New kid back on the block with a R.I.P
Avatar
Jiří Fencl
Člen
Avatar
Odpovídá na David Hartinger
Jiří Fencl:26.5.2017 14:43

Mohl by jsi uz za tu dobu vedet, ze chyba se zasadne zacina hledat jinde nez u sebe :D

 
Nahoru Odpovědět
26.5.2017 14:43
Avatar
Petr Marek
Člen
Avatar
Petr Marek:26.5.2017 16:56

Já jsem jen upravil jméno a heslo ve zdrojácích z tutoriálu. Proto nechápu co je špatně...Chyba nijak nepokračuje, viz přiložený obrázek. Jinak jméno a heslo jsem opsal z phpmyadmin...

Editováno 26.5.2017 16:57
 
Nahoru Odpovědět
26.5.2017 16:56
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Petr Marek
David Hartinger:26.5.2017 22:24

Tak to se omlouvám, musím přiznat, že takovou chybu jsem snad ještě ani neviděl :) Když dáš zobrazit zdrojový kód stránky, tak vypadá taky takhle? Pokud používáš XAMPP, je tam jméno root a heslo prázdný string. Můžeš se zkusit podívat ještě do chybových logů, jestli to tam není celé. Pokud jsi nic neměnil v projektu, tak to může být jen tím, že je špatně jméno, heslo nebo název databáze.

Nahoru Odpovědět
26.5.2017 22:24
New kid back on the block with a R.I.P
Avatar
Petr Marek
Člen
Avatar
Odpovídá na David Hartinger
Petr Marek:31.5.2017 22:35

Tak už jsem na to přišel :D Nepoužívám XAMPP, ale USBWebserver (ten není potřeba instalovat) a ten pracuje na portu 3307, místo 3306. Takže stačilo změnit jeden řádek v Db.php:

self::$connection = new PDO('mysql:dbname=test;host=localhost:3307',$user, $password);

Ale díky za ochotu pomoct :)

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
31.5.2017 22:35
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.