Autor Zpráva
emissary
Profil
Neviem, či tomu správne chápem, ale asi nie. Tak by som vás chcel poprosiť, aby mi niekto vysvetlí tento príkaz. V manuály som našiel takúto syntaxu.

resource mysql_query ( string $query [, resource $link_identifier = NULL ] )

celkom nechápem tomu druhému argumentu $link. Ja som to pochopil takto, (viď príklad). Ale nefunguje to. Mám tabuľku "entity" databáza s názvom "test2".

$entityID = 1;
$dbConn = mysql_connect("localhost", "meno", "nejaké heslo");
$hDB = mysql_select_db("test2", $dbConn) or die ("Chyba pri pokuse o pripojenie k databáze!");

$sql = "SELECT * FROM  `entity` WHERE `entityid` = $entityID";

$xxx = mysql_query($sql, $hDB);
if(!$xxx) {
    echo "chyba";
}

Tento kód vždy skončí chybou. Ide o to, že chcem vždy určiť pri pripojení na akú databázu sa má pripojiť.


Vlastne celé to malo vyzerať nejako takto

class mysql {
    private static function _getConnection () {
        static $dbConn;
        static $hDB;
        
        if(isset($hDB)) {
            return $hDB;
        }
        
        $dbConn = mysql_connect("localhost", "nejake meno", "nejake heslo");
        $hDB = mysql_select_db("test2", $dbConn) or die ("Chyba pri pokuse o pripojenie k databáze!");
        return $hDB;
    }
    
    public static function getEntityData($entityID) {
        $sql = "SELECT * FROM  `entity` WHERE `entityid` = $entityID";
        $res = mysql_query($sql, mysql::_getConnection());
        if(! ($res && mysql_num_rows($res))) {
            die ("Chyba pri načítaní informacií o entite s ID: $entityID");
        }
        
        return mysql_fetch_assoc($res);
    }
}

$a = 2;

$arData = mysql::getEntityData($a);
// Vypíše "Chyba pri načítaní informacií o entite s ID: 2;" 
Alphard
Profil
Předával se (volitelně) odkaz na spojení od mysql_connect(), ale tato extenze je mrtvá, na mysql_* zapomeňte.

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