Nach der Aktivierung des PDO - Fehler 2002 getaddrinfo fehlgeschlagen: Name oder eine Dienstleistung nicht bekannt
Habe ich vor kurzem gelernt über PDO, also änderte ich meine php-Dateien auf, passen Sie das format und jetzt bin ich immer wieder diese Antwort:
ERROR: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
Ich nicht ändern Sie die verbindungsvariablen nur das format zu passen, PDO. Ich arbeite mit einer Bitnami Lampstack (5.3.16-0) und haben, was die Dokumentation sagt, soweit Sie die Kommentarzeichen vor der Zeile für PDO mit mysql in die php.ini-Datei. Ich Frage mich, ob es hat zu tun mit meinem mysql.sock-Datei, die eine Größe von 0.
Meine PDO-Verbindung sieht so aus (ich habe den unix_socket und Anschluss-Stücke, weil Sie erwähnt wurden in einer anderen Frage im Zusammenhang mit diesem Fehler, aber Sie schien nicht zu helfen):
$dbConnection = new PDO('mysql:unix_socket=/opt/lampstack-5.3.16-0/mysql/tmp/mysql.sock;host=$dbhost;port=3306;dbname=$dbname;', $user, $pass);
apache, mysql, httpd, ect sind alle einwandfrei auf meinem server und dieser kam nur bis nach der Aktivierung des PDO.
InformationsquelleAutor tehaaron | 2012-11-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ersten, die Verbindungszeichenfolge in deinem Beispiel ist eine einzige zitiert, also variable, Aliase mit eingefügt werden sollen, wird nicht funktionieren. Doppelte Anführungszeichen verwenden, wenn Sie beabsichtigen, zu verwenden, den Inhalt der Variablen $dbhost.
Zweitens sollten Sie nicht geben Sie sowohl einen lokalen socket und einem host/port. Wählen Sie eine oder das andere. Ich vermute aus deinem Beitrag, die Buchse war nicht die ursprüngliche Absicht.
Versuchen Sie dies:
Auch, Ihr Beispiel Punkte der dbname $dbhost variable. Ist das ein Tippfehler?
Steckdosen sind alle 0 bytes. Sie werden nur von named pipes können gelesen und geschrieben, aber Sie selbst haben keinen Inhalt. Nur überprüfen Sie die Buchse vorhanden ist, wenn Sie es verwenden möchten.
Glück!
unknown database: $dbname
bin ich nicht erlaubt, um den dbname in eine variable wie den Benutzernamen und das pw?Ich denke, da es innerhalb der Anführungszeichen, es buchstäblich nicht wahr..
Ja den dbname ein Zeiger auf $dbhost war ein Tippfehler. Ich behoben, und der rest von den Sachen, die Sie erwähnt. Dankenswerterweise Ihre arbeiten jetzt außer für die Rückgabe undefiniert, aber ich werde das herausfinden! Nochmals vielen Dank Ray!
siehe meine letzten edits.
InformationsquelleAutor Ray
"mysql:host='localhost';dbname='Daten';charset=utf8"
Ihre DSN-format ist falsch, es sollte nicht die Anführungszeichen. Dies ist das richtige format
//$con=new PDO($dsn, $user, $Passwort);
$con=new PDO('mysql:dbname=testdb;host=127.0.0.1','root',");
InformationsquelleAutor Ashish Kumar