HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>Краткое отступление</a></li>
1 <ul><li><a>Краткое отступление</a></li>
2 <li><a>Подключение к database на PHP</a></li>
2 <li><a>Подключение к database на PHP</a></li>
3 <li><a>MySQLi-подключение</a></li>
3 <li><a>MySQLi-подключение</a></li>
4 <li><a>Процедурный подход к применению MySQLi</a></li>
4 <li><a>Процедурный подход к применению MySQLi</a></li>
5 <li><a>Подключаемся к БД средствами PHP Data Objects</a></li>
5 <li><a>Подключаемся к БД средствами PHP Data Objects</a></li>
6 <li><a>Метод для старых версий PHP</a></li>
6 <li><a>Метод для старых версий PHP</a></li>
7 <li><a>Какой тип соединения с сервером выбрать?</a></li>
7 <li><a>Какой тип соединения с сервером выбрать?</a></li>
8 </ul><p>Базы данных (БД, Database, db) широко применяются для структурирования и хранения информации. Они важны для успешной работы современных web-сайтов, причем используются для хранения данных и на тех сайтах, которые написаны на<strong>PHP</strong>. Таким образом, на практике<strong>databases</strong>применяют:</p>
8 </ul><p>Базы данных (БД, Database, db) широко применяются для структурирования и хранения информации. Они важны для успешной работы современных web-сайтов, причем используются для хранения данных и на тех сайтах, которые написаны на<strong>PHP</strong>. Таким образом, на практике<strong>databases</strong>применяют:</p>
9 <p>- для сохранения пользовательских данных, полученных с помощью форм регистрации;</p>
9 <p>- для сохранения пользовательских данных, полученных с помощью форм регистрации;</p>
10 <p>- для проверки, существует ли конкретный аккаунт в системе, какие у него права доступа (access);</p>
10 <p>- для проверки, существует ли конкретный аккаунт в системе, какие у него права доступа (access);</p>
11 <p>- для организации поиска по страницам сайта;</p>
11 <p>- для организации поиска по страницам сайта;</p>
12 <p>- для хранения комментариев;</p>
12 <p>- для хранения комментариев;</p>
13 <p>- для хранения всевозможного контента (статей, изображений, медиафайлов) и многих других данных (data).</p>
13 <p>- для хранения всевозможного контента (статей, изображений, медиафайлов) и многих других данных (data).</p>
14 <p>Но прежде, чем выполнить какую-нибудь операцию с записями, находящимися в БД, нужно сначала к этой БД<strong>подключиться</strong>.</p>
14 <p>Но прежде, чем выполнить какую-нибудь операцию с записями, находящимися в БД, нужно сначала к этой БД<strong>подключиться</strong>.</p>
15 <h2>Краткое отступление</h2>
15 <h2>Краткое отступление</h2>
16 <p>Традиционно, язык программирования PHP поддерживает работу с такой базой данных, как<strong>MySQL </strong>(это СУБД, поддерживающая структурированный язык запросов<strong>SQL</strong>). Для работы с базой данных MySQL в PHP встроены специальные функции, то есть необходимые возможности предусмотрены заранее. Эти функции позволяют:</p>
16 <p>Традиционно, язык программирования PHP поддерживает работу с такой базой данных, как<strong>MySQL </strong>(это СУБД, поддерживающая структурированный язык запросов<strong>SQL</strong>). Для работы с базой данных MySQL в PHP встроены специальные функции, то есть необходимые возможности предусмотрены заранее. Эти функции позволяют:</p>
17 <p>- выполнять запросы и получать результаты;</p>
17 <p>- выполнять запросы и получать результаты;</p>
18 <p>- обрабатывать ошибки;</p>
18 <p>- обрабатывать ошибки;</p>
19 <p>- читать и записывать данные;</p>
19 <p>- читать и записывать данные;</p>
20 <p>- успешно и эффективно работать с популярной СУБД.</p>
20 <p>- успешно и эффективно работать с популярной СУБД.</p>
21 <p>При подключении к MySQL соответствующий сценарий исполняет запрос и показывает результат запроса. Но самое главное заключается в том, что для работы с СУБД MySQL разработчику не придется ничего специально устанавливать, так как все нужное будет сразу доступно и включено в стандартную поставку PHP.</p>
21 <p>При подключении к MySQL соответствующий сценарий исполняет запрос и показывает результат запроса. Но самое главное заключается в том, что для работы с СУБД MySQL разработчику не придется ничего специально устанавливать, так как все нужное будет сразу доступно и включено в стандартную поставку PHP.</p>
22 <h2>Подключение к database на PHP</h2>
22 <h2>Подключение к database на PHP</h2>
23 <p>Выполнить подключение к серверу БД MySQL можно несколькими способами:</p>
23 <p>Выполнить подключение к серверу БД MySQL можно несколькими способами:</p>
24 <ul><li>с помощью объектно-ориентированного подхода<strong>MySQLi</strong>;</li>
24 <ul><li>с помощью объектно-ориентированного подхода<strong>MySQLi</strong>;</li>
25 <li>с помощью процедурного подхода MySQLi;</li>
25 <li>с помощью процедурного подхода MySQLi;</li>
26 <li>используя технологию<strong>PDO</strong>;</li>
26 <li>используя технологию<strong>PDO</strong>;</li>
27 <li>используя способ подключения для старых версий PHP (имеются в виду версии до PHP 5).</li>
27 <li>используя способ подключения для старых версий PHP (имеются в виду версии до PHP 5).</li>
28 </ul><p>Все вышеперечисленные варианты дают возможность выполнить ту же задачу. То есть выбор наиболее подходящего варианта осуществляется на основании:</p>
28 </ul><p>Все вышеперечисленные варианты дают возможность выполнить ту же задачу. То есть выбор наиболее подходящего варианта осуществляется на основании:</p>
29 <p>- условий текущей разработки;</p>
29 <p>- условий текущей разработки;</p>
30 <p>- PHP-версии;</p>
30 <p>- PHP-версии;</p>
31 <p>- субъективных предпочтений.</p>
31 <p>- субъективных предпочтений.</p>
32 <p>Но какой бы метод выбран не был, важно иметь основную информацию как о database, так и нюансах доступа (access) к ней. Что подразумевается под основной информацией:</p>
32 <p>Но какой бы метод выбран не был, важно иметь основную информацию как о database, так и нюансах доступа (access) к ней. Что подразумевается под основной информацией:</p>
33 <ul><li><strong>сервер размещения</strong>. Когда разработка проекта ведется на локальном сервере, указывается значение<em>localhost</em>(аналогичная ситуация в большинстве случаев справедлива и тогда, когда вы пользуетесь хостингом);</li>
33 <ul><li><strong>сервер размещения</strong>. Когда разработка проекта ведется на локальном сервере, указывается значение<em>localhost</em>(аналогичная ситуация в большинстве случаев справедлива и тогда, когда вы пользуетесь хостингом);</li>
34 <li><strong>login</strong><strong>и</strong><strong>password</strong><strong>пользователя</strong>, имеющего доступ (access). Когда работы проводятся на локальном сервере, юзер может быть root и с пустым паролем;</li>
34 <li><strong>login</strong><strong>и</strong><strong>password</strong><strong>пользователя</strong>, имеющего доступ (access). Когда работы проводятся на локальном сервере, юзер может быть root и с пустым паролем;</li>
35 <li><strong>имя базы данных</strong>.</li>
35 <li><strong>имя базы данных</strong>.</li>
36 </ul><p>Таким образом, заданный набор переменных в PHP выглядит следующим образом:</p>
36 </ul><p>Таким образом, заданный набор переменных в PHP выглядит следующим образом:</p>
37 <h2><strong>MySQLi-подключение</strong></h2>
37 <h2><strong>MySQLi-подключение</strong></h2>
38 <p>При использовании этого способа создается экземпляр класса mysqli. В процессе создания подключения в параметрах задается информация о сервере, а также о доступах подключения и имени определенной БД, задаваемой переменными. Данные можно указать и строкой (row), то есть без использования переменных, однако вывод параметров в едином разделе либо конфигурационном файле повышает удобство работы с проектом.</p>
38 <p>При использовании этого способа создается экземпляр класса mysqli. В процессе создания подключения в параметрах задается информация о сервере, а также о доступах подключения и имени определенной БД, задаваемой переменными. Данные можно указать и строкой (row), то есть без использования переменных, однако вывод параметров в едином разделе либо конфигурационном файле повышает удобство работы с проектом.</p>
39 <h2><strong>Процедурный подход к применению MySQLi</strong></h2>
39 <h2><strong>Процедурный подход к применению MySQLi</strong></h2>
40 <p>Для некоторых разработчиков более понятна и привычна работа в процедурном формате. Если это так, есть возможность задействовать тот же метод, однако с другой синтаксической реализацией. Когда может пригодиться подобное решение? К примеру, если осуществляется перенос старого MySQL-проекта.</p>
40 <p>Для некоторых разработчиков более понятна и привычна работа в процедурном формате. Если это так, есть возможность задействовать тот же метод, однако с другой синтаксической реализацией. Когда может пригодиться подобное решение? К примеру, если осуществляется перенос старого MySQL-проекта.</p>
41 <p>// выполняем подключение</p>
41 <p>// выполняем подключение</p>
42 <p>$db = mysqli_connect($db_host, $db_user, $db_pass, $db_name)</p>
42 <p>$db = mysqli_connect($db_host, $db_user, $db_pass, $db_name)</p>
43 <p> or die('Error: подключение выполнено не было.'); // сообщение о том, что произойдет ошибка</p>
43 <p> or die('Error: подключение выполнено не было.'); // сообщение о том, что произойдет ошибка</p>
44 <p>// операции с database, к примеру:</p>
44 <p>// операции с database, к примеру:</p>
45 <p>$my_data = mysqli_query($db,"SELECT * FROM my_table");</p>
45 <p>$my_data = mysqli_query($db,"SELECT * FROM my_table");</p>
46 <p>// завершаем подключение</p>
46 <p>// завершаем подключение</p>
47 <p>mysqli_close($db);</p>
47 <p>mysqli_close($db);</p>
48 <h2><strong>Подключаемся к БД средствами PHP Data Objects</strong></h2>
48 <h2><strong>Подключаемся к БД средствами PHP Data Objects</strong></h2>
49 <p>Неплохое решение при работе с web-проектом - использование технологии PHP Data Objects (PDO). В чем плюс этой технологии? Да хотя бы в том, что появляется возможность работать с разными БД, не меняя основной код.</p>
49 <p>Неплохое решение при работе с web-проектом - использование технологии PHP Data Objects (PDO). В чем плюс этой технологии? Да хотя бы в том, что появляется возможность работать с разными БД, не меняя основной код.</p>
50 <p>Следует добавить несколько слов и о выборке данных в PDO. Делать это можно с помощью:</p>
50 <p>Следует добавить несколько слов и о выборке данных в PDO. Делать это можно с помощью:</p>
51 <ol><li><strong>Ассоциативного массива.</strong>PDO::FETCH_ASSOC обеспечивает возвращение массива с названиями столбцов в виде ключей.</li>
51 <ol><li><strong>Ассоциативного массива.</strong>PDO::FETCH_ASSOC обеспечивает возвращение массива с названиями столбцов в виде ключей.</li>
52 <li><strong>Объекта.</strong>PDO::FETCH_OBJ обеспечивает возвращение анонимного объекта со свойствами, которые соответствуют именам столбцов.</li>
52 <li><strong>Объекта.</strong>PDO::FETCH_OBJ обеспечивает возвращение анонимного объекта со свойствами, которые соответствуют именам столбцов.</li>
53 </ol><p>Возникают ситуации, когда надо поработать со старыми версиями либо с достаточно древними проектами. Это значит, что надо иметь некое представление и об этом подходе. Его реализация схожа с процедурным подходом MySQLi и является, по сути, его предыдущей версией.</p>
53 </ol><p>Возникают ситуации, когда надо поработать со старыми версиями либо с достаточно древними проектами. Это значит, что надо иметь некое представление и об этом подходе. Его реализация схожа с процедурным подходом MySQLi и является, по сути, его предыдущей версией.</p>
54 <p>Также давайте приведем пример добавления новой записи (insert into) в таблицу БД с помощью функции mysql_query(). Она может применяться также и для удаления, изменения и выборки данных посредством запроса SQL. Аргументом функции является строка с запросом. В результате возвращается идентификатор запроса.</p>
54 <p>Также давайте приведем пример добавления новой записи (insert into) в таблицу БД с помощью функции mysql_query(). Она может применяться также и для удаления, изменения и выборки данных посредством запроса SQL. Аргументом функции является строка с запросом. В результате возвращается идентификатор запроса.</p>
55 <p>&lt;html&gt;</p>
55 <p>&lt;html&gt;</p>
56 <p>&lt;head&gt;</p>
56 <p>&lt;head&gt;</p>
57 <p>&lt;title&gt;Добавляем новую запись в нашу таблицу&lt;/title&gt;</p>
57 <p>&lt;title&gt;Добавляем новую запись в нашу таблицу&lt;/title&gt;</p>
58 <p>&lt;/head&gt;</p>
58 <p>&lt;/head&gt;</p>
59 <p>&lt;body&gt;</p>
59 <p>&lt;body&gt;</p>
60 <p>&lt;?php</p>
60 <p>&lt;?php</p>
61 <p>$db = "sample";</p>
61 <p>$db = "sample";</p>
62 <p>$link = mysql_pconnect ();</p>
62 <p>$link = mysql_pconnect ();</p>
63 <p>if ( !$link )</p>
63 <p>if ( !$link )</p>
64 <p> die ("Подключение к MySQL невозможно!");</p>
64 <p> die ("Подключение к MySQL невозможно!");</p>
65 <p>mysql_select_db ( $db ) or die ("Нет возможности открыть $db");</p>
65 <p>mysql_select_db ( $db ) or die ("Нет возможности открыть $db");</p>
66 <p>$query = "INSERT INTO books</p>
66 <p>$query = "INSERT INTO books</p>
67 <p> VALUES (‘111-2222-33-4’, ‘Иванов Иван’,</p>
67 <p> VALUES (‘111-2222-33-4’, ‘Иванов Иван’,</p>
68 <p> ‘Руководство по PHP’, ‘333’, ‘5’)";</p>
68 <p> ‘Руководство по PHP’, ‘333’, ‘5’)";</p>
69 <p>mysql_query ( $query );</p>
69 <p>mysql_query ( $query );</p>
70 <p>mysql_close ( $link );</p>
70 <p>mysql_close ( $link );</p>
71 <p>?&gt;</p>
71 <p>?&gt;</p>
72 <p>&lt;/body&gt;</p>
72 <p>&lt;/body&gt;</p>
73 <p>&lt;/html&gt;</p>
73 <p>&lt;/html&gt;</p>
74 <h2><strong>Какой тип соединения с сервером выбрать?</strong></h2>
74 <h2><strong>Какой тип соединения с сервером выбрать?</strong></h2>
75 <p>Выбор должен быть обоснованный (based). Важно понимать, что технология подключения подбирается программистом с учетом условий проекта, личных предпочтений, а также удобства применения. То есть надо быть в курсе проектных рамок и перспективы проекта. И не стоит применять устаревшие технологии и решения, когда существует возможность использовать что-нибудь более новое и эффективное.</p>
75 <p>Выбор должен быть обоснованный (based). Важно понимать, что технология подключения подбирается программистом с учетом условий проекта, личных предпочтений, а также удобства применения. То есть надо быть в курсе проектных рамок и перспективы проекта. И не стоит применять устаревшие технологии и решения, когда существует возможность использовать что-нибудь более новое и эффективное.</p>
76 <p>Для небольшого проекта, для которого не планируется сложное расширение, может быть вполне достаточно MySQLi. Вдобавок к этому, объектно-ориентированный подход позволит вам структурировать проект.</p>
76 <p>Для небольшого проекта, для которого не планируется сложное расширение, может быть вполне достаточно MySQLi. Вдобавок к этому, объектно-ориентированный подход позволит вам структурировать проект.</p>
77 <p>Если разрабатываемая система будет динамически развиваться и расширяться, может возникнуть необходимость в замене database, что позволит работать с повышенными объемами записей. В таком случае предпочтительнее PDO. В дальнейшем разработчику не придется менять большую часть существующего кода в связи с обновлениями.</p>
77 <p>Если разрабатываемая система будет динамически развиваться и расширяться, может возникнуть необходимость в замене database, что позволит работать с повышенными объемами записей. В таком случае предпочтительнее PDO. В дальнейшем разработчику не придется менять большую часть существующего кода в связи с обновлениями.</p>
78 <a></a><p><em>Источники:</em></p>
78 <a></a><p><em>Источники:</em></p>
79 <ul><li><em>https://space-base.ru/library/php/podklyuchenie-bazy-dannyh-mysql-v-php;</em></li>
79 <ul><li><em>https://space-base.ru/library/php/podklyuchenie-bazy-dannyh-mysql-v-php;</em></li>
80 <li><em>https://htmlacademy.ru/tutorial/php/mysql;</em></li>
80 <li><em>https://htmlacademy.ru/tutorial/php/mysql;</em></li>
81 <li><em>https://htmlweb.ru/php/mysql.php.</em></li>
81 <li><em>https://htmlweb.ru/php/mysql.php.</em></li>
82 </ul>
82 </ul>