Autor Zpráva
Majkelju
Profil
Dobrý den,

po nějakém roce jsem se dal do tvorby jednoduchých stránek, využil jsem k tomu kód ze svých starších, ale funkčních.
Zasekl jsem se ale na naprosté trivialitě - Nemůžu se připojit k DB. Doufám, že mi bude schopen někdo pomoct. Už několik hodin jsem slušně frustrován, protože opět mám "neřešitelný" problém, sotva jsem začal...

V samostatném souboru mám:
<?php
define('MYSQL_HOST','c236um.forpsi.com');
define('MYSQL_USER','abcd');
define('MYSQL_PASSWORD','xyz');
define('MYSQL_DB','abcd'); 

$db = mysqli_connect (MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD) or die("nepodarilo se pripojit k MySQL");
mysqli_select_db(MYSQL_DB, $db) or die(mysqli_error($db));
mysqli_query("SET NAMES UTF8"); 
?>

V index.php toto pak v body volám pomocí include "protected/_mysql.php";

Chyba se projevuje tak, že když v kódu nechám to include, zobrazí se úplně prázdná, bílá stránka. Prozkoumání stránky mi ukazuje, jakoby se vše, co je v tagu body, smazalo. Zkoušel jsem hostitele přepsat na "localhost", ale to mi rovnou vypíše chybu "nepodarilo se pripojit k MySQL". Ještě bych se měl zmínit, že původně jsem měl všechny funkce ve tvaru "mysql" místo "mysqli", to mi ale házelo chyby typu "undefined function".

EDIT: Problém bude asi s řádkem mysqli_select_db(MYSQL_DB, $db) - když do mysqli_error místo proměnné dosadím text, tak mi ho vypíše jako chybové hlášení. Jméno databáze mám ale stoprocentně správně, několikrát jsem to kontroloval, je stejné jako uživatelské jméno.
Davex
Profil
Majkelju:
původně jsem měl všechny funkce ve tvaru "mysql" místo "mysqli"
Při přechodu z mysql na mysqli nestačí pouze doplnit i, protože nové funkce se používají trochu jinak.

1) V zásadě všechny funkce vyžadují předání připojení k databázi.
2) Mění se pořadí argumentů.

Doporučuji nahlédnout do dokumentace - mysqli_connect - mysqli_query.
Majkelju
Profil
Díky, samozřejmě je to tak a chyba byla v prohození parametrů v mysqli_select_db :)
Holt vycházel jsem ze starého funkčního kódu a nečekal jsem, že tam budu muset dělat takové změny, aby to na současném serveru jelo. Proč nefungují mysql funkce, jsem dosud nezjistil.
juriad
Profil
php.net/manual/en/function.mysql-connect.php
Podívej se na ten červený warning hned na začátku. Nejspíš tvůj hosting používá PHP verze 7. Mysql funkce byly označeny za zastaralé už 20. června 2013 a vědělo se o tom, že se časem úplně odstraní.

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: