Öffnet eine Verbindung zu einem MySQL-Server

# mysql_connect

(PHP 4, PHP 5)

mysql_connect — Öffnet eine Verbindung zu einem MySQL-Server

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen bietet der Ratgeber MySQL: Auswahl einer API. Alternativen zu dieser Funktion umfassen:

- mysqli_connect()
- PDO::__construct()

### Beschreibung

function mysql_connect(
string `$server` = ini_get("mysql.default_host"),
string `$username` = ini_get("mysql.default_user"),
string `$password` = ini_get("mysql.default_password"),
bool `$new_link` = `false`,
int `$client_flags` = 0
): resource|false

Öffnet eine neue Verbindung zu einem MySQL-Server oder verwendet eine bestehende.

### Parameter-Liste

`server`
  Der MySQL-Server. Er kann zudem eine Portnummer enthalten, z. B. "hostname:port" oder den Pfad zu einem lokalen Socket, z. B. ":/pfad/zum/socket" für Zugriffe auf dem lokalen Rechner (localhost). Wenn die PHP-Direktive mysql.default_host nicht definiert ist (Standard), ist der Vorgabewert 'localhost:3306'. Bei SQL safe mode wird dieser Paramter ignoriert und immer der Wert 'localhost:3306' verwendet.
`username`
  Der Benutzername. Der Standardwert ist durch mysql.default_user definiert. Bei SQL safe mode wird dieser Parameter ignoriert und der Name des Benutzers verwendet, dem der Prozess gehört.
`password`
  Das Passwort. Der Standardwert ist durch mysql.default_password definiert. Bei SQL safe mode wird dieser Parameter ignoriert und ein leeres Passwort verwendet.
`new_link`
  Für den Fall, dass ein zweiter Aufruf von mysql_connect() mit den gleichen Argumenten erfolgt, wird keine neue Verbindung aufgebaut, sondern die Verbindungskennung der schon bestehenden Verbindung zurückgegeben. Der Parameter `new_link` beeinflusst dieses Verhalten und mysql_connect() öffnet immer eine neue Verbindung, sogar dann, wenn mysql_connect() zu einem früheren Zeitpunkt mit den gleichen Parametern aufgerufen wurde. Bei SQL safe mode wird dieser Parameter ignoriert.
`client_flags`
  Der Parameter `client_flags` kann eine Kombination der folgenden Konstanten sein: 128 (aktiviert die Verwendung von `LOAD DATA LOCAL`), `MYSQL_CLIENT_SSL`, `MYSQL_CLIENT_COMPRESS`, `MYSQL_CLIENT_IGNORE_SPACE` und `MYSQL_CLIENT_INTERACTIVE`. Lesen sie den Abschnitt über MySQL-Client-Konstanten für weitergehende Informationen. Bei SQL safe mode wird dieser Parameter ignoriert.

### Rückgabewerte

Gibt im Erfolgsfall eine MySQL-Verbindungskennung zurück. Bei einem Fehler wird `false` zurückgegeben.

### Beispiele

Beispiel #1 mysql_connect()-Beispiel

    <?php
    $link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
    if (!$link) {
        die('Verbindung schlug fehl: ' . mysql_error());
    }
    echo 'Erfolgreich verbunden';
    mysql_close($link);
    ?>

Beispiel #2 mysql_connect()-Beispiel unter Verwendung der `hostname:port`-Syntax

    <?php
    // Verbindung zu example.com auf Port 3307
    $link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password');
    if (!$link) {
        die('Verbindung schlug fehl: ' . mysql_error());
    }
    echo 'Erfolgreich verbunden';
    mysql_close($link);

    // Verbindung zu localhost auf Port 3307
    $link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password');
    if (!$link) {
        die('Verbindung schlug fehl: ' . mysql_error());
    }
    echo 'Erfolgreich verbunden';
    mysql_close($link);
    ?>

Beispiel #3 mysql_connect()-Beispiel unter Verwendung der ":/path/to/socket"-Syntax

    <?php
    // Verbing zu localhost und Socket z. B. /tmp/mysql.sock

    // Variante 1: localhost weglassen
    $link = mysql_connect(':/tmp/mysql', 'mysql_user', 'mysql_password');
    if (!$link) {
        die('Verbindung schlug fehl: ' . mysql_error());
    }
    echo 'Erfolgreich verbunden';
    mysql_close($link);

    // Variante 2: mit localhost
    $link = mysql_connect('localhost:/tmp/mysql.sock', 'mysql_user', 'mysql_password');
    if (!$link) {
        die('Verbindung schlug fehl: ' . mysql_error());
    }
    echo 'Erfolgreich verbunden';
    mysql_close($link);
    ?>

### Anmerkungen

> Hinweis: Immer wenn Sie "localhost" oder "localhost:port" als Server angeben, wird die MySQL-Client-Bibliothek dies überschreiben und versuchen, sich mit einem lokalen Socket (named pipe unter Windows) zu verbinden. Wenn Sie TCP/IP verwenden möchten, verwenden sie "127.0.0.1" statt "localhost". Wenn die MySQL-Client-Bibliothek versucht, sich mit dem falschen lokalen Socket zu verbinden, sollte der korrekte Pfad in der php.ini als mysql.default_host geetzt werden und das Server-Feld leergelassen werden.

> Hinweis: Die Verbindung zum Server wird geschlossen, sobald die Ausführung des Skripts endet, außer sie wurde zuvor explizit durch den Aufruf von mysql_close() geschlossen.

> Hinweis: Error "Can't create TCP/IP socket (10106)" deutet meist darauf hin, dass die Konfigurationsanweisung variables_order das Zeichen `E` nicht enthält. Wird unter Windows die Umgebung nicht kopiert, ist die Umgebungsvariable `SYSTEMROOT` nicht verfügbar und PHP wird Schwierigkeiten haben, Winsock zu laden.

### Siehe auch

- mysql_pconnect() - Öffnet eine persistente Verbindung zum MySQL-Server
- mysql_close() - Schließt eine Verbindung zu MySQL

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open