Урок №7. Как соединиться с базой данных MySQL.
Прежде чем вытаскивать из базы данных 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. Теперь компьютер знает, куда ему нужно в случае чего обращаться.