mysql_connect
mysql_connect
Open a connection to a MariaDB Server
Description
resource 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);
Opens or reuses a connection to a MariaDB server.
Parameters
server
-
The MariaDB server. It can also include a port number. e.g. 'hostname:port' or a path to a local socket e.g. ':/path/to/socket' for the localhost.
If the PHP directive mysql.default_host is undefined (default), then the default value is 'localhost:3306'. In SQL safe mode, this parameter is ignored and value 'localhost:3306' is always used.
username
-
The username. Default value is defined by mysql.default_user. In SQL safe mode, this parameter is ignored and the name of the user that owns the server process is used.
password
-
The password. Default value is defined by mysql.default_password. In SQL safe mode, this parameter is ignored and empty password is used.
new_link
-
If a second call is made to
mysql_connect
with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned. Thenew_link
parameter modifies this behavior and makesmysql_connect
always open a new link, even ifmysql_connect
was called before with the same parameters. In SQL safe mode, this parameter is ignored. client_flags
-
The
client_flags
parameter can be a combination of the following constants: 128 (enableLOAD DATA LOCAL
handling),MYSQL_CLIENT_SSL
,MYSQL_CLIENT_COMPRESS
,MYSQL_CLIENT_IGNORE_SPACE
orMYSQL_CLIENT_INTERACTIVE
. Read the section about Table 20.10, "MySQL client constants" for further information. In SQL safe mode, this parameter is ignored.
Return Values
Returns a MariaDB link identifier on success or FALSE
on failure.
Changelog
Version | Description |
---|---|
4.3.0 | Added the client_flags parameter.
|
4.2.0 | Added the new_link parameter. |
Examples
Example 20.20. mysql_connect
example
<?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?>
Example 20.21. mysql_connect
example using hostname:port
syntax
<?php // we connect to example.com and port 3307 $link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); // we connect to localhost at port 3307 $link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?>
Example 20.22. mysql_connect
example using ':/path/to/socket' syntax
<?php // we connect to localhost and socket e.g. /tmp/mysql.sock // variant 1: omit localhost $link = mysql_connect(':/tmp/mysql', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); // variant 2: with localhost $link = mysql_connect('localhost:/tmp/mysql.sock', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?>
Notes
NoteWhenever you specify 'localhost' or 'localhost:port' as server, the MariaDB client library will override this and try to connect to a local socket (named pipe on Windows). If you want to use TCP/IP, use '127.0.0.1' instead of 'localhost'. If the MariaDB client library tries to connect to the wrong local socket, you should set the correct path as mysql.default_host
string in your PHP configuration and leave the server field blank.Note
The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling mysql_close
.Note
You can suppress the error message on failure by prepending a @ to the function name.Note
Error 'Can't create TCP/IP socket (10106)' usually means that the variables_order configure directive doesn't contain character E
. On Windows, if the environment is not copied the SYSTEMROOT
environment variable won't be available and PHP will have problems loading Winsock.
See Also
mysql_pconnect
|
mysql_close |