Поиск

Соединение с сервером и создание базы данных

Работая с файлами и каталогами (глава 10), при открытии объекта мы сначала создавали на него указатель. Затем этот указатель использовался во всех опера циях с файлом или каталогом. При чтении списка файлов в каталоге мы позна комились с еще одним важным понятием последовательно перемещаемым указателем на имя файла при каждом вызове функции readdir ( ) . Подобный указатель используется и при работе с базами данных. Сначала необходимо со единиться с сервером БД (в нашем случае с сервером MySQL). Затем это соеди нение будет использоваться как точка доступа для последующих команд. Син таксис MySQL для соединения с сервером следующий:

$Link=mysql_connect("host","user","password");

Связь устанавливается с помощью трех аргументов: хост, который почти всегда обозначается как localhost, имя пользователя и пароль. Два последних параметра определяют ваши права доступа к БД.

Права доступа к базе данных вопрос еще более сложный, чем права досту па к файлам. Необходимо понимать, что разные категории пользователей име ют разные права доступа. Например, администратор СУБД может создавать новые и удалять старые базы данных (в СУБД могут быть десятки баз данных), а администратор нижнего уровня может только создавать и модифицировать таблицы в одной единственной БД. Обычно пользователю разрешено только читать информацию из таблиц, но не модифицировать их.

Ваш провайдер наверняка предоставит вам частичные права администрато ра управление одной базой данных, но не всей СУБД и создаст для вас ис ходную БД. Если вы работаете на своем сервере или имеете права администра тора, то сможете создавать сколько угодно новых баз данных.
Новая база данных создается с помощью следующей функции:

mysql_create_db("databasename",$Link);

Обратите внимание на то, что значение аргумента $Link мы получили при соединении с БД и дальше используем его для работы с сервером БД так же, как применяли указатель файла при работе с файлом.
После завершения работы с СУБД рекомендуется отключить соединение:

1 mysql_close($Link);

Создадим новую базу данных, что потребует наличия у вас прав администра тора. Если провайдер ограничивает ваши права доступа, он должен создать исходную БД по вашему запросу, и в этом случае вы можете сразу перейти к нашему следующему разделу, «Создание таблицы».
Подсоединение к MySQL и создание базы данных

  1. Откройте новый PHPдокумент в текстовом редакторе.
  2. Начните со стандартного HTMLзаголовка.
  3. <HTMLxHEADxTITLE>Creating a Database</TITLEx/HEADxBODY>
  4. Откройте PHPраздел сценария и задайте переменные базы данных.
  5. <?php
    $Host = "localhost";
    $User = "user";
    $Password = "password";
    $ DBNaiwe = " NewDa t aba s e";

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

  6. Установите связь с базой данных.
  7. $Link = mysql_connect ($Host, $User,$Password);

    Этой строкой сценария будет устанавливаться связь с СУБД MySQL на сер вере с помощью имени хоста, имени пользователя и пароля. Если введенное имя пользователя или пароль не соответствуют определенным в базе данных, в момент выполнения сценария вы получите сообщение об ошибке.

  8. Попытайтесь создать новую базу данных и распечатайте сообщение о ре зультате своих действий.
  9. if (mysql_create_db ($DBName, $Link)) {
    print ("The database, $DBName, was successfully
    —created'! <BR>\n") ;
    J ' e l s e {
    print ("The database, $DBName, could not be created!<BR>\n");

    Когда база данных создана, вы получаете сообщение об этом (рис. 11.2). Если по какойто причине база создана не была, вы увидите несколько сообще ний об ошибках MySQL, а также сообщение «Не может быть создана!», сгене рированное этой условной конструкцией (рис. 11.3).

  10. Отключите связь с системой MySQL, закройте PHPраздел и HTML.
  11. mysql_close ($Link);
    ?x/BODYx/HTML>

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

  12. Сохраните сценарий как CreateDB.php (листинг 11.1), загрузите его на сервер и протестируйте в браузере.
  13. Листинг 11.1 т Создание новой базы данных состоит из трех этапов: соеди нение с сервером, использование функции mysql_create_db ( ) и закрытие со единения. У меня вошло в привычку задавать параметры базы данных хост, имя пользователя, пароль и имя базы данных как переменные, для того что бы позже их легко можно было изменить.

    1 <HTML>
    2 <HEAD>
    3 <TITLE>Creating a Database</TITLEx/HEAD>
    4 <BODY>
    5 <?php
    6 // Установка значения переменных для доступа к базе данных.
    7 $Host = "localhost";
    8 $User = "user";
    9 $Password = "password";
    10 $DBName = "NewDatabase";
    11
    12 $Link = mysql_connect ($Host, $User,$Password);
    13 if (myegl_create_db ($DBName, $Link)) {
    14 print ("The database, $DBName,_was successfully created!<BR>\n");
    15 } else {
    16 print ("The database, $DBName, could not be created!<BR>\n");
    17 }
    18 mysql_close ($Link);
    19 ?> ' .
    20 </BODY>
    21 </HTML>
    В PHP поддерживается большинство баз данных, включая dBase, FilePro, mSQL, MySQL, Oracle, PostgreSQL и SyBase. 'Если вы используете базу данных, которая не поддерживается напрямую (например, Access или MS SQLсервер), вам необ ходимо использовать набор функций ODBC (открытый интерфейс доступа к базам данных) в РНР и подключить соответствующие ODBCдрайвера к указанным СУБД. Более подробная информация содержится в приложении С.
    Использование РНР с системой MySQL стало таким распространенным явлением, что появилось два специальных термина, обозначающие сервера, сконфигуриро ванные с РНР и MySQL: LAMP (операционная система Linux, сервер Apache, СУБД MySQL, PHP) и WAMP (операционная система Windows, сервер Apache, СУБД MySQL, PHP).