Progress28.ru

IT Новости
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Php connect to mysql

mysql_connect — Открывает соединение с сервером MySQL

mysql_connect — Открывает соединение с сервером MySQL

Данное расширение устарело, начиная с версии PHP 5.5.0, и будет удалено в будущем. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

Описание

Открывает новое соединение с сервером 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 в случае возникновения ошибки.

Список изменений

ВерсияОписание
5.5.0Функция вызывает ошибку E_DEPRECATED .

Примеры

Пример #1 Пример использования mysql_connect()

Пример #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 );

// соединяемся с 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

// вариант 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, после чего можно оставлять параметр 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 через mysql, pdo и mysqli

Прежде чем подключиться к MySQL серверу необходимо определиться с PHP расширением, которое будет использоваться для работы с базой данных. Под расширением понимается драйвер — посредник между сервером базы и программистом. Он содержит набор функций или объектов, которые упрощают работу программиста. На данный момент выделяют 3 основных расширения.

  • MySQL;
  • MySQLi;
  • PDO.

Все 3 расширения являются стандартным набором для любой хорошей хостинг-площадки. Однако, по умолчанию некоторые могут быть отключены в настройках PHP модулей. Информацию о включенных модулях возвращает функция «phpinfo» с параметром «8».

Доступность модуля можно определить с помощью простой конструкции в коде.

Подключение к MySQL через одноименное расширение

Расширение MySQL появилось первым и долгое время не имело конкурентов. Сейчас считается устаревшим и в серьезных проектах не используется. На это есть ряд причин, основными из которых являются плохая оптимизация и безопасность, отсутствие многопоточности. Несмотря на это, оно ещё долго будет поддерживаться большинством хостингов.

Начиная с PHP версии 5.5 многие функции расширения стали устаревшими, а в PHP 7 и вовсе не поддерживаются.

Рассмотрим пример подключения к базе данных с комментариями.

В качестве запросов используется стандартный SQL. Рассмотрим простые примеры выборки и добавления записей.

В примере производим простую выборку записей из таблицы «books». Результат представлен в качестве ассоциативного массива, поэтому его содержимое можно получить в обычном цикле. Если запрос не возвращает набор данных, то в качестве результата возвращается «false» или «true».

Отличие MySQLi от MySQL

MySQLi пришло на смену MySQL. Буква «i» обозначает улучшенный (Improved). Имеет частичную совместимость со старой версией. Поддерживается всеми версиями PHP. Имеет чуть большую скорость работы и лучшую безопасность. Установлено на 99% хостинговых площадках.

Одной из важных особенностей является наличие объектно-ориентированного интерфейса. Если раньше работы с базой данных осуществлялись при помощи интерфейса функций, то теперь можно использовать оба подхода. Рассмотрим пример подключения к базе данных через MySQLi средствами «ООП».

Так осуществляется простая выборка названий книг из поля «BName» таблицы «books». Вставка и обновление существующих записей так же не отличается сложностью.

В конце запроса осуществляем проверку, удалось ли обновить запись.

Подключение к базе через PDO

PDO — расширение для PHP, которое расшифровывается как PHP Data Objects. Его особенностью является повышенная безопасность и универсальный интерфейс работы с различными базами данных. Другими словами, если с помощью MySQLi можно создавать запросы только для MySQL сервера, то PDO позволяет работать с различными серверами используя один и тот же синтаксис запросов. Это удобно если разработчик заранее не знает под управлением какого сервера будет работать конечный продукт.

У PDO есть свой механизм соединения с базой данных — «DSN» (Data Source Name). Кроме адреса сервера, логина и пароля, он должен принять тип базы данных. Посмотрим пример подключения.

Точно так же осуществляются и другие действия с записями и таблицами. Только меняем SQL запрос и вызываем выполнение методом «exec».

Метод «exec» в отличии от «query» не может получать данные из базы данных. Он возвращает количество записей, которые были затронуты в результате работы SQL запроса.

PHP Подключение к MySQL

PHP 5 и более поздние версии могут работать с базой данных MySQL, используя:

  • Mysqli расширение («i» означает улучшение)
  • PDO (объекты данных PHP)

Более ранние версии PHP использовали расширение MySQL. Тем не менее, это расширение было устаревшим в 2012.

Должен ли я использовать mysqli или PDO?

Если вам нужен короткий ответ, это будет «все, что вам нравится».

Оба mysqli и PDO имеют свои преимущества:

PDO будет работать на 12 различных системах баз данных, в то время как mysqli будет работать только с базами данных MySQL.

Таким образом, если вам нужно переключить ваш проект на использование другой базы данных, PDO делает процесс легким. Необходимо только изменить строку подключения и несколько запросов. С mysqli вам потребуется переписать все включенные в код запросы.

Оба являются объектно-ориентированными, но mysqli также предлагает процедурный API.

Оба поддерживают подготовленные заявления. Подготовленные операторы защищают от внедрения SQL и очень важны для безопасности веб-приложений.

Примеры MySQL как в mysqli, так и в синтаксисе PDO

В этом, и в следующих главах мы показываем три способа работы с PHP и MySQL:

  • MySQLi (объектно-ориентированный)
  • MySQLi (Процедурные)
  • PDO

MySQLi установка

Для Linux и Windows: mysqli расширение автоматически устанавливается в большинстве случаев, когда PHP5 MySQL пакет установлен.

Установка PDO

Для получения сведений об установке перейдите по: http://PHP.NET/Manual/EN/PDO.Installation.php

Открыть подключение к MySQL

Прежде чем мы сможем получить доступ к данным в базе данных MySQL, мы должны иметь возможность подключиться к серверу:

Пример (mysqli объектно-ориентированный)

PHP является удивительным и популярным языком!

Обратите внимание на объектно-ориентированный пример выше: $Connect _еррор был сломан до PHP 5.2.9 и 5.3.0. Если необходимо обеспечить совместимость с версиями PHP до 5.2.9 и 5.3.0, используйте следующий код:

Проверить соединение
If (мискли_коннект_еррор ()) <
Die («сбой подключения к базе данных:». мискли_коннект_еррор ());
>

Пример (mysqli процедурный)

Пример (PDO)

Обратите внимание, что в примере PDO выше мы также указали базу данных (MyDB). PDO требуется действительная база данных для подключения. Если база данных не указана, создается исключение.

Совет: Большое преимущество PDO состоит в том, что он имеет класс исключений для обработки любых проблем, которые могут возникнуть в наших запросах к базе данных. Если в блоке try <> создается исключение, сценарий прекращает выполнение и перетекает непосредственно в первый блок catch () <>.

Закройте соединение

Соединение будет закрыто автоматически при завершении сценария. Чтобы закрыть подключение, выполните следующие действия.

mysql_connect

mysql_connect — Открывает соединение с сервером MySQL

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

Описание

Открывает новое соединение с сервером 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 в случае возникновения ошибки.

Список изменений

ВерсияОписание
5.5.0Функция вызывает ошибку E_DEPRECATED .

Примеры

Пример #1 Пример использования mysql_connect()

Пример #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 );

// соединяемся с 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

// вариант 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, после чего можно оставлять параметр 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
Читать еще:  Подключение к sql php
Ссылка на основную публикацию
Adblock
detector