mysql_connect
Данный модуль устарел, начиная с версии PHP 5.5.0, и удалён в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API. Альтернативы для данной функции:
Описание
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
Открывает новое соединение с сервером MySQL или использует уже существующее.
Список параметров
Сервер MySQL. Может также включать номер порта, например, «hostname:port» или путь к локальному сокету, например, «:/path/to/socket» для локального сервера.
Если PHP-директива mysql.default_host не определена (по умолчанию), то значением по умолчанию является ‘localhost:3306’. В SQL safe mode этот параметр игнорируется и всегда используется значение ‘localhost:3306’.
Имя пользователя. Значение по умолчанию определяется директивой mysql.default_user. В SQL safe mode этот параметр будет проигнорирован и будет использован пользователь, владеющий процессом сервера.
Пароль. Значение по умолчанию определяется директивой mysql.default_password. В SQL safe mode этот параметр будет проигнорирован и в качестве пароля будет использована пустая строка.
Если второй вызов функции mysql_connect() произошёл с теми же аргументами, то новое соединение не будет установлено. Вместо этого функция вернёт ссылку на уже установленное соединение. Параметр new_link может заставить функцию mysql_connect() открыть ещё одно соединение, даже если соединение с аналогичными параметрами уже открыто. В SQL safe mode этот параметр игнорируется.
Параметр client_flags должен быть комбинацией из следующих констант: 128 (включает обработку LOAD DATA LOCAL ), MYSQL_CLIENT_SSL , MYSQL_CLIENT_COMPRESS , MYSQL_CLIENT_IGNORE_SPACE or MYSQL_CLIENT_INTERACTIVE . Подробнее читайте в разделе Клиентские константы MySQL. В SQL safe mode этот параметр игнорируется.
Возвращаемые значения
Возвращает дескриптор соединения с MySQL в случае успешного выполнения или false в случае возникновения ошибки.
Примеры
Пример #1 Пример использования mysql_connect()
$link = mysql_connect ( ‘localhost’ , ‘mysql_user’ , ‘mysql_password’ );
if (! $link ) die( ‘Ошибка соединения: ‘ . mysql_error ());
>
echo ‘Успешно соединились’ ;
mysql_close ( $link );
?>?php
Пример #2 Пример использования mysql_connect() с синтаксисом hostname:port
// соединяемся с example.com на порту 3307
$link = mysql_connect ( ‘example.com:3307’ , ‘mysql_user’ , ‘mysql_password’ );
if (! $link ) die( ‘Ошибка соединения: ‘ . mysql_error ());
>
echo ‘Успешно соединились’ ;
mysql_close ( $link );
?php
// соединяемся с localhost на порту 3307
$link = mysql_connect ( ‘127.0.0.1:3307’ , ‘mysql_user’ , ‘mysql_password’ );
if (! $link ) die( ‘Ошибка соединения: ‘ . mysql_error ());
>
echo ‘Успешно соединились’ ;
mysql_close ( $link );
?>
Пример #3 Пример использования mysql_connect() с синтаксисом «:/path/to/socket»
// соединяемся к localhost по сокету, т.е. /tmp/mysql.sock
?php
// вариант 1: не указываем localhost
$link = mysql_connect ( ‘:/tmp/mysql’ , ‘mysql_user’ , ‘mysql_password’ );
if (! $link ) die( ‘Ошибка соединения: ‘ . mysql_error ());
>
echo ‘Успешно соединились’ ;
mysql_close ( $link );
// вариант 2: указываем localhost
$link = mysql_connect ( ‘localhost:/tmp/mysql.sock’ , ‘mysql_user’ , ‘mysql_password’ );
if (! $link ) die( ‘Ошибка соединения: ‘ . mysql_error ());
>
echo ‘Успешно соединились’ ;
mysql_close ( $link );
?>
Примечания
Замечание:
При указании параметру server значения «localhost» или «localhost:port» клиентская библиотека MySQL будет пытаться соединиться с локальным сокетом. Если вы всё же хотите использовать TCP/IP, используйте адрес «127.0.0.1» вместо «localhost». Если клиентская библиотека пытается подключиться не к тому локальному сокету, правильный путь должен быть установлен через указание директивы php.ini mysql.default_host в php.ini , после чего можно оставлять параметр server пустым.
Замечание:
Соединение с сервером будет закрыто при завершении исполнения скрипта, если только до этого оно не было закрыто с помощью функции mysql_close() .
Замечание:
Ошибка «Can’t create TCP/IP socket (10106)» (Невозможно создать сокет TCP/IP) обычно означает, что конфигурационная директива variables_order не содержит символ E . В Windows, если в окружение не будет скопирована переменная окружения SYSTEMROOT , то PHP будет испытывать проблемы при загрузке Winsock.
Смотрите также
- mysql_pconnect() — Устанавливает постоянное соединение с сервером MySQL
- mysql_close() — Закрывает соединение с сервером MySQL
PHP code to connect multiple MySQL server,multiple database simultaneously
Have you ever tried to connect two different servers and tried to query MySQL database located in each server to produce a single result from a single query?. If yes, probably you would be disappointed as much as we were. As far as we know, this cannot be achieved in one shot!. Therefore, we would walk you in this post, on, how to connect two MySQL databases on multiple servers using a different approach.
- You must always have a two-step approach for this.
- open connection to both the servers from PHP script
- query first server with first connection. close the connection.
- query second server with the second server. close the connection.
- fetch the resultant rows
- merge the resultant array using array_merge().
The following PHP code would help you understand completely how it’s done.
$qry2 = mysqli_query($dbh2, "select * from db2.table1 where db2.table1.id='421' and db2.table1.id=db2.table1.id",$dbh2) or die(mysqli_error($dbh2)); while($row2 = mysqli_fetch_array($qry2)) < $ar2[] = $row2; >$result = array_merge($ar, $ar2); // using for loop to retrieve data for($i=0;$i'; > // using for each loop to retrieve data foreach($result as $k=>$val) < echo $val['realname']. '
'; > // using while loop to retrieve data while(list($key, $value) = each($result))< echo $value['realname']. '
'; > ?>
- Of course, if you are using a highly complex query this is not the preferred approach, since, you need more execution and just because of code complexity itself.
- The resultant array of the result returned would contain duplicate values and you have to sort it with a different approach using array sort etc…
PHP code to connect multiple MySQL server,multiple database simultaneously
Have you ever tried to connect two different servers and tried to query MySQL database located in each server to produce a single result from a single query?. If yes, probably you would be disappointed as much as we were. As far as we know, this cannot be achieved in one shot!. Therefore, we would walk you in this post, on, how to connect two MySQL databases on multiple servers using a different approach.
- You must always have a two-step approach for this.
- open connection to both the servers from PHP script
- query first server with first connection. close the connection.
- query second server with the second server. close the connection.
- fetch the resultant rows
- merge the resultant array using array_merge().
The following PHP code would help you understand completely how it’s done.
$qry2 = mysqli_query($dbh2, "select * from db2.table1 where db2.table1.id='421' and db2.table1.id=db2.table1.id",$dbh2) or die(mysqli_error($dbh2)); while($row2 = mysqli_fetch_array($qry2)) < $ar2[] = $row2; >$result = array_merge($ar, $ar2); // using for loop to retrieve data for($i=0;$i'; > // using for each loop to retrieve data foreach($result as $k=>$val) < echo $val['realname']. '
'; > // using while loop to retrieve data while(list($key, $value) = each($result))< echo $value['realname']. '
'; > ?>
- Of course, if you are using a highly complex query this is not the preferred approach, since, you need more execution and just because of code complexity itself.
- The resultant array of the result returned would contain duplicate values and you have to sort it with a different approach using array sort etc…