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 |
#2 · Zasláno: 31. 3. 2017, 19:45:17
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 .
|
||
Časová prodleva: 5 dní
|
|||
Majkelju Profil |
#3 · Zasláno: 5. 4. 2017, 15:06:44
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 |
#4 · Zasláno: 5. 4. 2017, 15:19:58
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í. |
||
Časová prodleva: 8 let
|
0