Autor Zpráva
Ondrej
Profil *
Zdravím!
Dnes jsem nainstaloval na PC (Ubuntu 10.10) PHP a MySQL. Chtěl jsem vyzkoušet, zda se PHP připojí k MySQL, ovšem nedaří se to.
Vytvořil jsem testovací skriptík: zadám své jméno, PHP mi má vyplivnout příjmení nalézající se spolu se jménem v MySQL databázi.
Takto vypadá kód:

<?php
$database=mysql_connect("localhost","root","heslo_k_databazi");
if (!$database) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db("jmena");
$text=mysql_fetch_array(mysql_query("SELECT prijmeni FROM jmena WHERE jmeno = '".$_POST['name']."'"));
echo $text['prijmeni'];
?>

A podivné je, že se nic nezobrazí -- zcela prázdná stránka, ani žádná chybová hláška.
Medle se PHP nedokáže připojit k MySQL. Tento problém jsem testoval na vzdáleném PHP serveru, kde vše běží jak má.

Jak se prosím dá tato chyba odstranit? Čím je zapříčiněna?

Děkuji!
Alphard_
Profil *
Jste si jist, že se PHP k databázi nepřipojí? Selhal by connect a die by vypsalo hlášku...
Pravděpodobnější se mi zdá, že žádný záznam nevyhovuje podmínce apod.
pavuk
Profil
Tak já např. jsem stejnou věc dneska řešil asi tři hodiny, než jsem ani už nevím kde vyčetl že místo localhost mám zkusit zadat 127.0.0.1. Od tý chvíle to běží...
Ondrej
Profil *
Aha, tak problém byl zase na mé straně. Do databáze i do toho <input> pole jsem zadával jméno "Ondřej" s diakritikou. Nyní jsem zkusil odebrat z databáze diakritiku a vložit pole též bez nabodeníček. A funguje to, bude tedy problém jinde, v samotné diakritice.
Ondrej
Profil *
pavuk:
Ech, po připojení na 127.0.0.1 to vypíše hlášku: Could not connect: Lost connection to MySQL server at 'reading initial communication packet', system error: 111.
pavuk
Profil
Je to čirá magie....
Tori
Profil
Ondrej:
bude tedy problém jinde, v samotné diakritice.
Stránka s formulářem, skript zpracovávající data i znaková sada pro spojení s DB (a asi i kódování dané tabulky/sloupce, myslím si) by se měly shodovat, -li se nepletu.
V HTML je to tag <meta>, skript musí být v tom kódování uložený, pro spojení s DB se používá SQL dotaz "SET NAMES 'kódování'" (viz FAQ).
Ondrej
Profil *
Tori:
Výborně, děkuji, to pomohlo. Stačilo dát:

mysql_set_charset("utf8");

Mimochodem, lze nějak databázi říci, aby pracovala v UTF-8? Používám phpMyAdmin a nastavím-li v konkrétní databázi porovnávání "utf8_czech_ci", nefunguje to. Samozřejmě jestliže nepoužiji onu funkci mysql_set_charset().

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:

0