Autor | Zpráva | ||
---|---|---|---|
Richard Profil * |
Zdar chlapi,
nedokážu se připojit k databazi. Dostal jsem od poskytovatele hostingu tyto údaje k databázi a po vložení do kódu mi nenačítají data. Připojit se s těmito údaji k web. rozhraní, není problém. jmeno db: mMyInfo hostname pro db: uvdb21.active24.cz login pro db: mMyInfo heslo pro db: *** V kódu to je takto. Data jsem pozměnil kvůli bezpečnosti. define("MY_URL","uvdb21.active24.cz"); define("MY_PASSWORD","***"); define("MY_LOGIN","mMyInfo"); define("MY_DATABASE","mMyInfo"); Není mi jasné, co má být v MyURl. Zkoušel jsem localhost, uvdb21.active24.cz, active24.cz, active24, uvdb21 a pořád nic. Podpora mi není schopná poradit, odkázali mě diskuze. Jinak databáze na localhostu jen s jinými údaji fungovali perfektně. Díky Moderátor Alphard: Jestli přímo nechcete, aby to testoval někdo za vás (což asi nepůjde kvůli ip), není dobré dávat heslo do diskuse.
Moderátor Joker: Titulek „mysqli_connect("localhost","my_user","my_password","my_db");“ nevystihoval podstatu dotazu. Příště zkus prosím vymyslet lepší.
|
||
Alphard Profil |
#2 · Zasláno: 19. 1. 2015, 15:02:53
Richard:
„Zkoušel jsem localhost, ...“ Jaké jsou chybové hlášky? |
||
Richard Profil * |
#3 · Zasláno: 19. 1. 2015, 15:23:30 · Upravil/a: Richard
Právě že žádné. Jen se stopne ukončí script a další načítání stránky.
Zde je část mého kódu. $mysql_connect = MySQLi_Connect(MY_URL, MY_LOGIN, MY_PASSWORD, MY_DATABASE) or die("Error " . mysqli_error($mysql_connect)); Omlouvámse, při localhostu se script neukončí. Načte se bez problému. Jen se prostě data nenačítají. Pozměnil jsem heslo, login, Db. Dávám pozor. |
||
Fisir Profil |
#4 · Zasláno: 19. 1. 2015, 15:26:42
Reaguji na Richarda:
A jak načítáš ta data? |
||
Richard Profil * |
#5 · Zasláno: 19. 1. 2015, 15:31:54
Jak to přesně myslíš?
|
||
Fisir Profil |
#6 · Zasláno: 19. 1. 2015, 15:36:10
Reaguji na Richarda:
Kód, který se stará o načítání dat ( mysqli_query() , mysqli_fetch_assoc() , …).
|
||
Alphard Profil |
#7 · Zasláno: 19. 1. 2015, 15:37:15
Zkuste vypsat mysqli_connect_error(). A možná ještě lépe bez té
or die podmínky (nemám ji rád).
$link = mysqli_connect(MY_URL, MY_LOGIN, MY_PASSWORD, MY_DATABASE); if (mysqli_connect_errno()!==0) { echo 'Nelze se pripojit k db: '.mysqli_connect_error(); } |
||
Richard Profil * |
#8 · Zasláno: 19. 1. 2015, 15:51:40 · Upravil/a: Richard
Ok, používám mysqli_query . Zde je celý kód, pokud to pomůže.
function createComboBox($select, $coloumName) { $mysql_connect = MySQLi_Connect(MY_URL, MY_LOGIN, MY_PASSWORD, MY_DATABASE) or die("Error " . mysqli_error($mysql_connect)); //$select = "SELECT name FROM entertainment ORDER BY name"; $result = mysqli_query($mysql_connect, $select); if (!$result) { die('Couldnt select from database:' . mysqli_error($mysql_connect)); } if ($result) { $htm_file = "createCombo.htm"; $rep = ""; while ( $RS = mysqli_fetch_array($result, MYSQLI_ASSOC)) { if (File_Exists($htm_file)) { $fp = FOpen($htm_file, "r"); while (!FEof($fp)) { $strline = FGets($fp, 9999); if (strstr($strline, "###enterValue###")) $strline = str_replace("###enterValue###", $RS[$coloumName], $strline); if (strstr($strline, "###enterValue2###")) $strline = str_replace("###enterValue2###", $RS[$coloumName], $strline); $rep .= $strline; } fclose($fp); } } return $rep; } mysqli_close($mysql_connect); } Reaguji na Alphard: Tak jsem vyzkoušel $link = mysqli_connect(MY_URL, MY_LOGIN, MY_PASSWORD, MY_DATABASE); if (mysqli_connect_errno()!==0) { echo 'Nelze se pripojit k db: '.mysqli_connect_error(); } A nevyhodilo mě to žádnou chybu. Die by vyhodilo taky chybu. Tam si myslím, že problém nebude. |
||
Alphard Profil |
#9 · Zasláno: 19. 1. 2015, 18:22:43
Richard:
„Die by vyhodilo taky chybu“ Ano, šlo mi hlavně o použití funkce mysqli_connect_error. Konstrukce or die se mi nelíbí obecně, není to dobrý způsob ošetřování chyb. Ten kód by to chtělo trochu krokovat, vypisují se aspoň nějaké (záměrně vytvořené) chyby? Problém je podaný jako problém s dabází, ale máte ověřeno, že neselže třeba přístup k souboru kvůli právům? Na jakém řádku to padá? Mimochodem, funkce createComboBox() vypadá jako tuctová funkce, která může být volána vícekrát. Není dobré se pořád připojovat (a odpojovat) k db, je to docela drahá operace. Doporučuji připojit se jen poprvé a pak držet připojení. |
||
Časová prodleva: 10 let
|
0