Autor Zpráva
xaverista
Profil
Zdravím, mám problém s připojením na databázi. Jsem si jist, že údaje pro připojení jsou správné. Do teď to fungovalo, ale dneska mi poprvé vyhodil error:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] Connection timed out' in /home/******/public_html/novinky/Db.php:48 Stack trace: #0 /home/****/public_html/novinky/Db.php(48): PDO->__construct('mysql:host=admi...', 'hosting', '*****', Array) #1 /home/*****/public_html/index.php(3): Db::connect('admin.*****.e...', 'novinky', 'hosting', '*****') #2 {main} thrown in /home/*****/public_html/novinky/Db.php on line 48

a přikládám ještě řádek 48 z Db.php

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);
        }
    }
Zechy
Profil
xaverista:
Čas pro připojení vypršel, takže pravděpodobně je někde problém po cestě k serveru. Pokud máš localhost, zkus ověřit, jestli frčí. Jinak zkus ještě ověřit připojení třeba přes nějaký myAdmin či si na něj pingnout. Je možné, že server je v tuto chvíli nedostupný.
Jan Tvrdík
Profil
xaverista:
A už to funguje? Nebo problém přetrvává? Pokud se jednalo o jednorázový problém, tak šlo nejspíš o chybu (výpadek) hostingu.
xaverista
Profil
Zdravím, problém stále přetrvává, zajímavé je ale, že databáze pro administraci funguje, i když je to úplně ta stejná databáze jak pro Administraci tak i pro web
----------------------------------------------
EDIT: Na localhostu vše frčí, tak jak má
Jan Tvrdík
Profil
xaverista:
Můžeš zkusit zvýšit timeout třeba na 5 sekund, tj.

$dsn = "mysql:host=$host;dbname=$database";
self::$options[PDO::ATTR_TIMEOUT] = 5;
self::$connection = new PDO($dsn, $user, $password, self::$options);
xaverista
Profil
Jan Tvrdík:
Můžeš zkusit zvýšit timeout třeba na 5 sekund, tj.
Sry nefunguje
Jan Tvrdík
Profil
xaverista:
Projevuje se ten problém i v izolaci? Tj. když skript obsahuje pouze výše uvedené 3 řádky?
xaverista
Profil
No mam tento script na 2 strankach a na té jedné funguje a na té druhé ne, i když je to stejný script
Kajman
Profil
A ty dvě stránky jsou na stejném serveru?
xaverista
Profil
No web je na serveru hostingu a Administrace a databáze je umístěna na VPSku
nightfish
Profil
A není problém v tom, že web, který běží na serveru hostingu, nemá přístup na VPS (třeba kvůli nastavení firewallu atd.)?
xaverista
Profil
Díky všem problém vyřešen.
Davex
Profil
xaverista:
Díky všem problém vyřešen.
Bezva. A čím to tedy bylo?
xaverista
Profil
Přesně to bohužel nemohu zodpovědět, protože jsme se rozhodli přejít od hostingu, měli tam celkem dost problémů.
A ještě bych se chtěl zeptat, když se tato věc náhodou stane opět, jak zajistit, aby se normálně zobrazila stránka a pod sliderem by se třeba zobrazilo, problém s připojením k databázi a ne ta chyba, přece jen se tam zobrazují údaje hostitele,jmeno a heslo
Díky
juriad
Profil
xaverista:
Viz dokumentace. V catch bloku samozřejmě můžeš vypsat (nebo si poznamenat a vypsat později) jakoukoli hlášku.
xaverista
Profil
DObře a ještě, jen když se nebude moci připojit k databázi, ať to jen uloží třeba do proměnné $errorDatabaze text
$errorDatabaze = 'Omlouváme se, ale máme problém s připojením s databázi';
ale aby stránka jela normálně a jen se v určité části vypsala zpráva.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: