PHP 8.4.3 Released!

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:

Beschreibung

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

add a note

User Contributed Notes 2 notes

up
2
nicodenboer at yahoo dot com
12 years ago
Be carefull here if you use utf8.

The file db.opt of your database should contain the following lines:
default-character-set=utf8
default-collation=utf8_general_ci

It means that your database is created to use the utf8 characterset.
One way to accomplish this is:
CREATE DATABASE my_database DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Then, after connecting to it from PHP you should use:
mysql_set_charset("UTF8", $connection);

If you don't do this, you will get ugly problems in case other software is reading and writing to the same database!!!!!!
up
-2
VTool
8 years ago
fcgid_module modules/mod_fcgid.so
FcgidMaxRequestLen 209715200
FcgidConnectTimeout 240
FcgidIOTimeout 240
FcgidBusyScanInterval 240
FcgidBusyTimeout 240
# Esta línea instruye al servidor web para que reconozca un tipo nuevo (php)
AddHandler fcgid-script .php
# Esta línea indica al servidor web donde está instalado PHP.
FcgidInitialEnv PHPRC "c:/php"
# Esta línea indica al servidor web que debe ejecutar la aplicación
# php-cgi.exe cuando un cliente (navegador) solicite una página con
# extensión .php
FcgidWrapper "c:/php/php-cgi.exe" .php
# Con esta línea damos los permisos necesarios para que los clientes puedan
# acceder/ejecutar a los archivos .php
<Directory "c:/Apache/htdocs">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride None
Allow from all
</Directory>
To Top