2012-03-28 14 views
1

Ich versuche, eine Verbindung zu 2 Datenbanken herzustellen. Eine davon ist eine entfernte Datenbank. Sobald ich mit der entfernten Datenbank verbunden war, hatte ich Probleme mit dem, das existierte, es gab mir 'geliefertes Argument ist nicht gültig' auf mysql_fetch_array(). Also habe ich meine Datenbankklasse etwas geändert und versucht, es zum Laufen zu bringen. Aber ich bekomme immer noch Fehler :(. Sein Grabbing nicht $connection variabel. i „nicht definierte Variable Verbindung“ zu bekommen. diese Klasse meine Verbindung ist. Bitte helfen Sie mir. Schätzen Sie Ihre Hilfe.Probleme beim Verbinden mit der Datenbank

global $connection; 

class Database{ 

function __construct() 
{ 
    $this->open_connection(); 
} 

public function open_connection() 
{ 

    $connection = $this->connection= mysql_connect(SERVER,UNAME,PASSWORD); 

    if(!$this->connection) 
    { 
     return false; 
    } 

    if(!mysql_select_db(DB_NAME,$this->connection)) 
    { 
     return false; 
    } 
    return true; 
} 

public function close_connection() 
{ 
    mysql_close($this->connection); 
} 
//open_connection(); 
} 

$database = new Database(); 

und in einer anderen Seite :

$result=mysql_query($query,$connection);   

while ($rec = mysql_fetch_array($result)) ... etc 

ps alle Konstanten und andere Variablen sind richtig

+0

erhalten Sie einen Fehler? wenn ja post it .. – Milap

+0

wo sind diese Konstanten definiert? – k102

+0

Überschreiben Sie die $ Verbindung, sobald Sie die zweite datenbankbasierte Verbindung öffnen, da es sich um eine globale Verbindung handelt? – tartar

Antwort

1

eine globale Variable in einer Klasse verwenden wie der Tod ist Sie ein Klassenfeld für das zur Verfügung stellen könnte.. Verbindungsglied

$this->connection = mysql_connect(...); 

und außerhalb Ihrer Klasse

$result = mysql_query($sql, $object->connection); 

Ich würde vorschlagen, auch die vorhandene Mysqli Klasse zu verwenden.

+0

danke, wo finde ich mysqli Klasse? Ich habe nichts davon gehört. – guitarlass

+0

ok das ist, was ich als nächstes versuchte, ich erklärte 'public $ connection;' innerhalb der Klasse und legte '$ this-> connection = mysql_connect (SERVER, UNAME, PASSWORD);' innerhalb von open_connection(). dann, $ con = $ database-> connection; 'und jetzt gibt es mir" Undefined variable: database ": (( – guitarlass

+0

) Sie haben vergessen, den Verbindungshandler in der mysql_select_db Ausführung zu ändern? mysqli ist eine Standard-Erweiterung, müssen Sie nicht installieren Sie es manuell, alle Informationen finden Sie hier: http://www.php.net/manual/en/book.mysqli.php – peipst9lker

0

Hmm ... Nun, es sieht so aus, als ob Sie einen undefinierten Fehler bekommen, weil Sie global $ connection am Anfang der Klassendatei aufrufen und ihm kein Wert zugewiesen wurde.

Es sieht aus wie Sie $ Verbindung innerhalb der open_connection() -Methode einrichten ... Sie $ Verbindung in einigen eingeschlossenen Datei, die Sie nicht erwähnt haben, einrichten?

Versuchen Sie, die erste Codezeile zu entfernen, vielleicht?

0

die "globale $ Verbindung;" MUSS in "open_connection" -Methode sein oder @ peipst9lker-Methode verwenden

+0

Nein, ich habe versucht, deins. kein Glück. Danke trotzdem – guitarlass

Verwandte Themen