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
Richard:
Zkoušel jsem localhost, ...
Jaké jsou chybové hlášky?
Richard
Profil *
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
Reaguji na Richarda:
A jak načítáš ta data?
Richard
Profil *
Jak to přesně myslíš?
Fisir
Profil
Reaguji na Richarda:
Kód, který se stará o načítání dat (mysqli_query(), mysqli_fetch_assoc(), …).
Alphard
Profil
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 *
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
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í.

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