Номер телефона

Последнее обновление:

Как подключить базу данных MySQL к сайту на языке РНР

Статья может быть полезной, скорее, для новичков

В настоящее время, наверное, мало какой сайт обходится без баз данных – все дело только в их количестве, а также – в размере. На сравнительно небольших сайтах их размер может исчисляться десятками мегабайт, а так – не являются редкостью и сайты, имеющие базы данных объемом даже и несколько гигабайт.

База данных может быть создана «с нуля» или она может быть уже готовой

В первом случае особых проблем с ее подключением не должно возникнуть. А вот как быть, если необходимо подключить к сайту уже готовую базу данных?

Когда может возникнуть такая задача?

По сути, так или иначе, такая задача возникает, когда необходимо перенести сайт куда-нибудь в другое место. Например при переносе:

  1. На другой хостинг,
  2. На локальный сервер (тот же Denwer или OpenServer),
  3. Или даже на другой логин в пределах ОДНОГО И ТОГО ЖЕ хостинга.

Если со скриптами PHP все гораздо проще – их следует лишь скопировать в нужные каталоги и, быть может, прописать для них настройки в файлах типа .htaccess, php.ini, то с базами данных придется повозиться чуть дольше.

Рассмотрим, как подключить базу данных к сайту в Denwer при помощи phpMyAdmin

phpMyAdmin – это достаточно известная система управления (администрирования) базами данных.

Чтобы запустить ее в Denwer, следует ввести следующий URL: http://localhost/Tools/phpMyAdmin/main.php

localhost, myphpadmin

Получим примерно следующее окно:

Чтобы посмотреть, какие базы данных уже подключены к локальному серверу, следует перейти на вкладку «Базы данных»:

localhost, myphpadmin

Как видно, к локальному серверу подключены 4 базы данных:

information_schema, mysql, performance_schema, phpmyadmin.

Это – системные базы локального сервера Denwer.

Например, у нас имеется своя база данных под названием veresko.

Как ее подключить?

К сожалению, простое размещение ее где-нибудь в каталогах сайта никоим образом делу не поможет, так как сервер просто-напросто НЕ УЗНАЕТ о ней. Поэтому поступаем следующим образом. По шагам:

1. Определяемся с размером базы данных.

Дело в том, что в Denwer по умолчанию установлены следующие настройки:

  • На импорт файлов – не более 2 МБ,
  • На объем POST-запросов – не более 18 МБ.

Если у Вас база данных небольшая, то этих параметров Вам может хватить. Иначе – можно поступить двумя путями:

  1. Заархивировать файл готовой базы данных при помощи архиватора ZIP. Нередко, они очень даже хорошо сжимаются, раз в 10 и даже более. Denwer и phpMyAdmin вполне принимают как готовые файлы баз данных (с расширением .sql), так и их архивы (с расширением .zip).
  2. Изменить указанные Выше максимальные параметры в файле php.ini. К примеру, в Denwer этот файл находится в каталоге \usr\local\php5\php.ini.

Открываем этот файл и находим следующие параметры, устанавливая требуемые нам предельные значения, например:

  • upload_max_filesize = 150M (по умолчанию там стоит 2М),
  • post_max_size = 28M

Ну, и на всякий случай, проверим настройку file_uploads, которая должна быть установлена в On (иначе phpMyAdmin не сможет загрузить Вашу базу данных).

  1. Создаем новую базу данных. Для этого прямо наверху списка четырех (пока еще) баз данных, там, где есть надпись «Создать базу данных», указываем имя нашей базы данных, например, veresko. Затем нажимаем «Создать». После чего новая (наша) база данных появится в списке, т.е. будет уже не четыре, а пять баз данных. Возможно, потребуется обновить страницу:
localhost, myphpadmin
  1. Теперь пришла пора импортировать файл с уже имеющейся (готовой) базой данных. Импорт будем производить, разумеется, в только что созданную базу данных под названием veresko.

Для этого переходим на вкладку «Импорт». Там выбираем наш файл с базой данных (т.е. непосредственно сам файл или его архив в формате zip).

localhost, myphpadmin
Примечание: перед импортированием ОБЯЗАТЕЛЬНО следует проверить кодировку файла базы данных. Для этого его можно, к примеру, открыть в редакторе Notepad++ и во вкладке «Кодировки» посмотреть его кодировку. В нашем случае это – utf-8, поэтому все хорошо. Если же у Вас кодировка файла с базой данных будет иной, то следует изменить ее в phpMyAdmin (поле под названием «Кодировка файла»). Если исходная кодировка вбазе данных и кодировка, в которой Вы его будете импортировать, не совпадут, то последствия будут, разумеется, неприятными. В случае, если в базе данных будут содержаться символы, помимо латинских букв, цифр и специальных символов.

Сверив кодировки, нажимаем «ОК». Процесс может занять некоторое время.

  1. Чтобы проконтролировать, создались ли новая база данных или таки нет, можно перейти в каталог \usr\local\mysql-5.5\data\veresko и убедиться, что там появились некие файлы. Их число определяется системой автоматически и зависит от того, насколько большой является база данных, сколько у нее имеется таблиц и т.д.
  2. Окончательно, следует проверить права доступа к только что импортированной базе данных. Для этого переходим на вкладку «Базы данных» и около надписи veresko нажимаем «Проверить привилегии».

Там будут перечислены все пользователи, имеющие доступ к Вашей базе данных. В первую очередь это – root.

Кстати, это – пользователь, с правами которого запускается Denwer. В частности, поэтому его крайне нежелательно использовать в качестве реального сервера, если кто пожелает организовать собственный хостинг.

Т.е. там будет примерно такая таблица:

Пользователь Хост Тип Привилегии GRANT Действие
root 127.0.0.1 Глобальный уровень ALL PRIVILEGES Да Редактирование привилегий
root ::1 Глобальный уровень ALL PRIVILEGES Да Редактирование привилегий
root localhost Глобальный уровень ALL PRIVILEGES Да Редактирование привилегий

Если Вы планируете использовать базу данных как root (а это, еще раз, придется делать, если будет использоваться Denwer), то проблем нет, привилегии этого пользователя уже настроены. Но, можно также добавить дополнительных пользователей. Тогда в этой таблице появятся дополнительные строчки вида:

veresko % Глобальный уровень ALL PRIVILEGES Нет Редактирование привилегий
veresko localhost Глобальный уровень ALL PRIVILEGES Нет Редактирование привилегий
veresko site.ru Глобальный уровень SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, CREATE VIEW, EVENT, TRIGGER, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EXECUTE Нет Редактирование привилегий

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

Проверим работу базы данных средствами РНР

Для этого запустим примерно такой код:

  1. $p['user'] = 'root';
  2. $p['pass'] = '';
  3. $p['host'] = 'localhost';
  4. $p['scheme'] = 'mysql';

  1. $conn = mysql_connect(
  2. $p['host'],
  3. $p['user'],
  4. $p['pass']);

  1. mysql_select_db('veresko') or die('NO database');

    1. $this->_resetLastError();
    2. $res = mysql_query("SELECT DATABASE() FROM DUAL");
  1. var_dump(mysql_fetch_assoc($res));
  2. echo 'First…'. PHP_EOL;

  1. $db_list = mysql_list_dbs($conn);
  2. $i = 0;
  3. $cnt = mysql_num_rows($db_list);
  4. while ($i < $cnt) {
  5. echo mysql_db_name($db_list, $i) . PHP_EOL;
  6. $i++;
  7. }
  8. echo 'Second…'. PHP_EOL;

  1. var_dump($p);
  2. die('conn='. $conn);

Примерно вот что получим в браузере после запуска:

  1. array(1) {
  2. ["DATABASE()"]=>
  3. string(15) "veresko"
  4. }
  5. First…
  6. information_schema
  7. mysql
  8. performance_schema
  9. phpmyadmin
  10. veresko
  11. Second…
  12. array(4) {
  13. ["scheme"]=> string(5) "mysql"
  14. ["host"]=> string(9) "localhost"
  15. ["user"]=> string(4) "root"
  16. ["pass"]=> string(0) ""
  17. }
  18. conn=Resource id #24

Пояснения по коду

В первых трех строчках устанавливаются параметры соединения с сервером баз данных. Как мы уже договорились, запускаем (только для целей тестирования) нашу базу данных из-под root, а пароль – обнуляем, т.е. задаем его в виде пустой строки.

Насчет хоста – почему же localhost? Ведь у нас будет, скорее всего, свой какой-то сайт, типа site.ru. Дело в том, что сервер баз данных находится на нашем же компьютере (это, разумеется, справедливо, если сайт будет расположен не на локальном хостинге, а в интернете). Причем, это – отдельный сервер, не наш site.ru. Именно потому и указываем localhost.

Строчки 4…7 пытаются установить соединение с сервером баз данных. А в строчке 8 происходит выбор базы данных под названием veresko (т.е. та самая только что импортированная нами база данных). Если соединение не будет установлено, выбрать базу данных не получится и будет выведено сообщение NO database.

Строчки 8.1, 8.2, 9 выводят имя нашей базы данных (т.е. той базы данных, с которой произошло соединение и которая выбрана для работы).

Примечание: если не сделать выбор, т.е. проигнорировать строчку 8, то результатом выполнения строчки 9 будет NULL.

Таким образом, мы вывели на экран название нашей базы данных.

Примечание. Если НЕ сделать приведенные выше процедуры по импорту базы данных, то результатом строчки 9 ВСЕГДА будет NULL. Так как в таком случае локальный сервер не будет знать, где именно находится база данных с именем veresko.

После слова First приведен код, выводящий на экран ВСЕ подключенные базы данных – как нашу, так и четыре системных, которые мы уже видели, когда работали с phpMyAdmin.

Дальнейшее, надеемся, очевидно

Как видно, этот код вывел все пять баз данных.

Это означает, что все базы данных корректно подключены. В частности, и наша, недавно созданная база данных – тоже.



Комментарии:
Всего комментариев: 0
Пожалуйста, не забудьте ознакомиться с правилами оставления комментариев.



Подписаться на комментарии на этой странице

Мы можем выполнить

Другие услуги
Интересная и полезная
информация
НАПИШИТЕ НАМ
Яндекс.Метрика
Номер телефона
© Copyright Все права защищены 2013-2024 Научный консалтинг