Урок №7. Как соединиться с базой данных MySQL.

Рис. 1
Рис. 2

Прежде чем вытаскивать из базы данных MySQL какие-то поля, вносить в них изменения и.т.д., сначала нужно с этой базой данных соединиться. Компьютеру нужно сообщить, с какой базой данных ему нужно соединяться, где она находится, как называется, и под каким пользователем вы вообще хотите туда зайти.

В базу данных MySQL могут войти только те пользователи, которые были созданы в разделе "Привилегии" в phpmyadmin.

(Рис 1)

Соединяются с базой данных с помощью PHP-кода, который необходимо вставить на каждую страницу, где будет нужно производить какие-то действия с MySQL.

Код этот достаточно простой. Давайте сейчас попробуем с ним разобраться.

<?php

$dblocation = "localhost"; // Имя сервера

$dbuser = "MRG"; // Имя пользователя

$dbpassword = "111222"; // Пароль

 

$db=@mysql_connect ($dblocation,$dbuser,$dbpassword);

// Символ @ нужен для того, чтобы не выводилась ошибка при неудачном

//подключении

if (!$db) // Если соединение не установлено

{echo "<p>В данный момент соединиться с базой данных не возможно. Напишите об этом администратору.</p>";

exit();

}

 

mysql_select_db ("DGTU",$db); //Выбираем базу данных для дальнейшей

//работы.

 

 

$sql_select = mysql_query("SELECT * FROMsiteWHEREid='1'",$db); //выбираем бд для дальнейшей работы

?>

 

 

 

Сначала создаются три переменных:

$dblocation = "localhost"; // Имя сервера

$dbuser = "MRG"; // Имя пользователя

$dbpassword = "111222"; // Пароль

Эти переменные содержат параметры, по которым будет выполнено соединение. В принципе, их можно было бы не создавать, но дело в том, что если какие-то из этих параметров в дальнейшем изменятся, их нужно будет поменять только один раз в значении переменной, а не искать во всем коде и менять все вручную.

Имя пользователя и пароль мы с вами задавали в phpmyadmin в разделе "Привилегии", указывать нужно именно эти данные.

$db=mysql_connect ($dblocation,$dbuser,$dbpassword);

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

mysql_connect (имя сервера, имя пользователя, его пароль);

После того, как вы соединитесь с базой данных с помощью функции mysql_connect, в результате ее работы мы получаем значение специального идентификатора (порядкового номера) по которому компьютер будет знать, к какой базе данных ему обращаться. Этот идентификатор нужно занести в любую переменную, обычно ее называют $db.

Я попробовал вывести значение переменно $db на экран (<? echo $db; ?>) и получил следующий результат - Resource id #2. Т.е. компьютер для себя отметил, куда ему нужно в дальнейшем обращаться.

Хочу также обратить ваше внимание на то, что перед функцией mysql_connect стоит знак "@" (собака). Для чего он нужен?

Этот символ отвечает за то, будет ли выводится сообщение об ошибке при неудачном соединения с базой данных или не будет.

Давайте попробуем этот значок убрать и написать просто:

$db=mysql_connect ($dblocation,"mmm",$dbpassword);

Но в качестве имени пользователя, укажем то имя, которого нет в списке всех пользователей (например,mmm). После этого у вас должна появиться примерно вот такое сообщение об ошибке:

Warning: mysql_connect(): Access denied for user: 'mmm@localhost' (Using password: YES) in z:\home\localhost\www\php\index.php on line 6

Т.е. пользователь не определен. Но если мы напишем так:

$db=@mysql_connect ($dblocation,"mmm",$dbpassword);

, то сообщение об ошибке должно исчезнуть и пользователь его не увидит.

Идем дальше

if (!$db) // Если соединение не установлено
{echo "<p>В данный момент соединиться с базой данных не возможно. Напишите об этом администратору.</p>";
exit();
}

Здесь все очень просто, это обычное условие. Если соединение с базой данных нам установить не удалось, то нужно вывести на экран соответствующую текстовую строку и выйти из программы (exit();). Код, который будет написан после оператора exit(), выполняться не будет.

А узнать установлено или нет соединение можно, написав переменную db со значком "!" впереди (!$db). Знак "!" означает операцию (НЕ). Т.е. мы говорим, что если нет переменной $db, то выполняй следующую последовательность действий.

Все, после операций, которые мы только что сделали, можете считать, что с базой данных MySQL мы уже соединились. Но компьютер еще не знает, с какой конкретно базой данных ему работать, как вы уже знаете, их может быть несколько.

(рис 2)

Чтобы указать какую конкретно базу данных необходимо использовать, нужно воспользоваться функцией mysql_select_db.

mysql_select_db ("DGTU",$db); //Выбираем базу данных для дальнейшей
//работы.

Как вы видите, здесь я просто указал идентификатор соединения $db и название базы данных "php".

Вот и все. После такого, не слишком сложного кода, мы уже можем использовать различные команды и напрямую работать с базой данных MySQL. Теперь компьютер знает, куда ему нужно в случае чего обращаться.