Frage

Ich habe Probleme, eine sekundäre MySQL-Verbindung zu machen (zu einer separaten, externen DB) in meinem Code. Es funktioniert gut in PHP 5.2.9 aber nicht in PHP 5.3.0 zu verbinden. Ich bin mir dessen bewusst (zumindest etwas) der Änderungen erforderlich, um erfolgreich MySQL-Verbindungen in der neueren Version von PHP zu machen, und bevor es gelungen, so dass ich bin mir nicht sicher, warum es diesmal nicht funktioniert.

Ich habe bereits eine DB-Verbindung offen zu einer lokalen Datenbank. Diese Funktion unten wird dann verwendet, um eine zusätzliche Verbindung zu einem separaten, Remote-Verzeichnis zu machen. Die im Lieferumfang enthaltene Konfigurationsdatei enthält einfach die externen Datenbankdetails (Host, User, Pass und Namen). Ich habe überprüft und richtig aufgenommen wird.

function connectDP() {
    global $dpConnection;

    include("secondary_db_config.php);
    $dpConnection = mysql_connect($dp_dbHost, $dp_dbUser, $dp_dbPass, true) or DIE("ERROR: Unable to connect to Deployment Platform");
    mysql_select_db($dp_dbName, $dpConnection) or DIE("ERROR 006: Unable to select Deployment Platform Database");
}

ich dann versuchen, diese neue Verbindung herstellen können einfach durch Aufruf dieser Funktion extern:

connectDP();

Aber wenn das Laden der Seite (in 5.3.0), bekomme ich die Meldung:

ERROR: Unable to connect to Deployment Platform

Ich bin mit dem optional new_link Flag boolean als viertem Argument in der mysql_connect() Funktion und es funktioniert immer noch nicht.

Ich habe mein Gehirn wurde wracking heute Morgen versucht, herauszufinden, warum diese Verbindung nicht funktioniert (wenn ich etwas sehr ähnlich anderswo in eine separate zweite Datenbank, die funktioniert getan haben). Jede mögliche Hilfe würde geschätzt.

Danke!

Reich

War es hilfreich?

Lösung

Seit PHP 5.3 es seinen eigenen MySQL-Treiber verwendet (mysqlnd) standardmäßig anstelle des libmysqlclient. Je nach Plattform kann es nicht die Standardwerte aus Ihrem MySQL-Konfigurationsdatei gelesen (zB. /etc/mysql/my.cnf). Sie müssen bearbeiten php.ini und geben Sie die Standardeinstellungen für die Erweiterung (en), die Sie verwenden (mysql, mysqli, gU). Zum Beispiel in Debian müssen Sie den Pfad zu Socket angeben (zB. /var/run/mysqld/mysqld.sock) sich in der INI-Datei. Gehen Sie einfach durch die INI-Datei und geben Sie die Optionen fehlen und es sollte funktionieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top