Přejít na obsah

Jak na připojení PHP k NEON databázi

php


Přímo na obrazovce, kterou máš na obrázku, klikni vlevo nahoře na zelené tlačítko Connect.

Otevře se okno s připojovacími údaji. Pro PHP tě zajímají hlavně:

  • Host – něco jako ep-xxxxxx.eu-central-1.aws.neon.tech
  • Database – typicky neondb, případně tvoje vlastní DB
  • User / Role – uživatelské jméno
  • Password – heslo
  • Port – 5432
  • SSL – Neon vyžaduje SSL, tedy typicky sslmode=require

Neon ti zároveň ukáže celý Connection string ve tvaru:

postgresql://USER:PASSWORD@HOST/DATABASE?sslmode=require



Na této obrazovce je heslo už schované hvězdičkami a původní heslo z nich nezjistíš.

Klikni vpravo vedle Role na Reset password.

Neon ti vygeneruje nové heslo pro uživatele neondb_owner. To si hned zkopíruj a ulož, protože ho pak použiješ v PHP.

Tvůj connection string pak bude mít přibližně tento tvar:

postgresql://neondb_owner:NOVE_HESLO@ep-tiny-morning-b49xafjb-pooler.c-6.us-east-2.aws.neon.tech/neondb?sslmode=require&channel_binding=require

Pro PHP přes PDO z toho použiješ:


<?php

$host = 'ep-tiny-morning-b49xafjb-pooler.c-6.us-east-2.aws.neon.tech';
$port = 5432;
$db   = 'neondb';
$user = 'neondb_owner';
$pass = 'SEM_VLOZ_NOVE_HESLO';

$dsn = "pgsql:host=$host;port=$port;dbname=$db;sslmode=require";

try {
    $pdo = new PDO($dsn, $user, $pass, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    ]);

    echo "✅ Připojení k Neon databázi funguje.";
} catch (PDOException $e) {
    echo "❌ Chyba: " . $e->getMessage();
}


Na tvém obrázku máš zapnuté Connection pooling, což je pro PHP webovou aplikaci v pořádku — proto je v hostname -pooler.

Ještě důležité: po Reset password přestane staré heslo fungovat, takže pokud ho někde už používáš, musíš ho tam také změnit.


🐘 Jak funguje PHP připojení k Neon PostgreSQL


Tento PHP kód slouží k tomu, aby se webová aplikace dokázala připojit k databázi PostgreSQL uložené ve službě Neon. Program si nejprve uloží přístupové údaje, vytvoří z nich připojovací řetězec a potom se pomocí PDO pokusí připojit.


<?php

$host = 'ep-tiny-morning-b49xafjb-pooler.c-6.us-east-2.aws.neon.tech';
$port = 5432;
$db   = 'neondb';
$user = 'neondb_owner';
$pass = 'SEM_VLOZ_NOVE_HESLO';

$dsn = "pgsql:host=$host;port=$port;dbname=$db;sslmode=require";

try {
    $pdo = new PDO($dsn, $user, $pass, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    ]);

    echo "✅ Připojení k Neon databázi funguje.";
} catch (PDOException $e) {
    echo "❌ Chyba: " . $e->getMessage();
}



🟦 1. Začátek PHP kódu

<?php

Značka <?php říká serveru: od tohoto místa začíná PHP program. PHP se vykonává na serveru. Uživatel v prohlížeči nevidí samotný PHP kód, ale pouze jeho výsledek.

🌐 2. Adresa databázového serveru

$host = 'ep-tiny-morning-b49xafjb-pooler.c-6.us-east-2.aws.neon.tech';

Vytváříme proměnnou $host, do které ukládáme adresu databázového serveru Neon. V PHP každá proměnná začíná znakem $. Text je uzavřený v apostrofech ' '. Středník ; znamená konec příkazu.

💡 Zapamatuj si: $host = kde databáze běží

🚪 3. Port databáze

$port = 5432;

Proměnná $port obsahuje číslo portu. Port si můžeme představit jako konkrétní vchod do serveru. PostgreSQL standardně používá port 5432.

💡 Zapamatuj si: $port = kterým vchodem se připojujeme

🗄️ 4. Název databáze

$db = 'neondb';

Proměnná $db obsahuje název databáze. Jeden PostgreSQL server může obsahovat více databází, proto musíme určit, ke které se chceme připojit.

💡 Zapamatuj si: $db = ke které databázi se připojujeme

👤 5. Uživatelské jméno

$user = 'neondb_owner';

Proměnná $user obsahuje jméno databázového uživatele. Databáze podle něj pozná, kdo se připojuje a jaká má oprávnění.

💡 Zapamatuj si: $user = kdo se připojuje

🔐 6. Heslo

$pass = 'SEM_VLOZ_NOVE_HESLO';

Proměnná $pass obsahuje heslo k databázovému účtu. Databáze pomocí uživatelského jména a hesla ověří, zda máme právo se připojit.

⚠️ Ve skutečné aplikaci se hesla nemají nechávat přímo ve zdrojovém kódu. Později se naučíme používat například soubor .env.

💡 Zapamatuj si: $pass = heslo k databázi

🔗 7. Sestavení připojovací adresy

$dsn = "pgsql:host=$host;port=$port;dbname=$db;sslmode=require";

Tady vytváříme takzvaný DSN, tedy připojovací řetězec. Obsahuje všechny informace potřebné pro připojení.

pgsql znamená PostgreSQL, host=$host vloží adresu serveru, port=$port vloží port, dbname=$db vloží název databáze a sslmode=require říká, že připojení musí být šifrované.

Protože používáme dvojité uvozovky " ", PHP dokáže uvnitř textu nahradit proměnné jejich skutečnými hodnotami.

💡 Zapamatuj si: $dsn = kompletní návod, jak se k databázi připojit

🧪 8. Pokus o připojení

try {

Slovo try znamená přibližně „zkus provést tento kód“. Používá se tam, kde může nastat chyba.

Například:

❌ špatné heslo

❌ nefunguje internet

❌ databázový server není dostupný

❌ špatně zadaná adresa serveru

Pokud chyba nastane, program nespadne úplně, ale můžeme ji zachytit pomocí catch.

🔌 9. Samotné připojení k databázi

$pdo = new PDO($dsn, $user, $pass, [

Toto je nejdůležitější řádek celého programu.

PDO znamená PHP Data Objects. Je to nástroj PHP pro komunikaci s databázemi.

new PDO(...) znamená: vytvoř nové databázové připojení.

Do PDO předáváme:

$dsn   → kde databáze je
$user  → uživatelské jméno
$pass  → heslo

Výsledek uložíme do proměnné:

$pdo

Právě přes $pdo budeme později posílat SQL příkazy.

Například:

$pdo->query("SELECT * FROM studenti");

znamená: pošli databázi SQL příkaz SELECT.

⚙️ 10. Nastavení chyb PDO

PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION

Tím nastavujeme způsob, jakým má PDO reagovat na chyby.

PDO::ATTR_ERRMODE znamená nastavení způsobu práce s chybami.

PDO::ERRMODE_EXCEPTION znamená: pokud nastane chyba, vytvoř výjimku, kterou můžeme zachytit pomocí catch.

To nám umožní zobrazit uživateli konkrétní chybu.

🔚 11. Ukončení nastavení PDO

]);

Tady ukončujeme vytvoření PDO.

] ukončuje seznam nastavení.

) ukončuje new PDO(...).

; ukončuje celý PHP příkaz.

✅ 12. Připojení se podařilo

echo "✅ Připojení k Neon databázi funguje.";

echo je příkaz PHP pro vypsání textu na stránku.

Tento řádek se provede pouze tehdy, pokud připojení k databázi proběhne správně.

Uživatel tedy uvidí:

✅ Připojení k Neon databázi funguje.

❌ 13. Co když nastane chyba?

} catch (PDOException $e) {

Pokud při připojování vznikne chyba, PHP přeskočí do části catch.

PDOException znamená chybu související s databází PDO.

Proměnná:

$e

obsahuje informace o vzniklé chybě.

💡 catch můžeme chápat jako: „chyť vzniklou chybu a zpracuj ji“.

🚨 14. Vypsání chyby

echo "❌ Chyba: " . $e->getMessage();

Pokud připojení selže, vypíšeme informace o chybě.

echo vypisuje text.

Tečka:

.

v PHP znamená spojení dvou textů.

Například:

"Ahoj " . "Karle"

vytvoří:

Ahoj Karle

Příkaz:

$e->getMessage()

získá skutečný text chyby.

Například:

password authentication failed

nebo:

could not connect to server

🧱 15. Konec programu

}

Poslední složená závorka } ukončuje část catch.

Tím končí celý blok pro zpracování chyb.

🧠 Jak funguje celý program

Celý program můžeme zjednodušeně chápat takto:

🌐 Adresa serveru
        ↓
🚪 Port
        ↓
🗄️ Databáze
        ↓
👤 Uživatel
        ↓
🔐 Heslo
        ↓
🔗 vytvoření DSN
        ↓
🔌 PDO
        ↓
🐘 PostgreSQL / Neon

PHP tedy nejprve zjistí kam se připojit, potom pod jakým uživatelem, následně vytvoří spojení a pokud vše funguje, můžeme databázi posílat SQL příkazy.

⭐ Co si z toho zapamatovat

$host 🌐 = adresa databázového serveru  $port 🚪 = port PostgreSQL  $db 🗄️ = název databáze  $user 👤 = uživatelské jméno  $pass 🔐 = heslo  $dsn 🔗 = informace potřebné pro připojení  $pdo 🔌 = hotové spojení s databází  try 🧪 = zkus provést kód  catch 🚨 = zachyť chybu  echo 💬 = vypiš text

🎯 Nejdůležitější princip

Po úspěšném připojení máme proměnnou:

$pdo

Ta představuje spojení mezi PHP a PostgreSQL databází.

Dále už můžeme například napsat:

$pdo->query("SELECT * FROM studenti");

a cesta dat bude:

👨‍💻 PHP
   ↓
🔌 PDO
   ↓
📨 SQL příkaz
   ↓
🐘 PostgreSQL
   ↓
🗄️ Neon databáze
   ↓
📦 výsledek
   ↓
🌐 webová stránka


V tomto kurzu nejsou povoleny komentáře.