После авторизации Вы получите доступ к файлам, скрытым материалам сайта, исходным кодам
возможность комментировать и т.д.

Вы можете авторизоваться на сайте всего одним кликом:

2016-07-21
Основы PHP → MySQL + PHP
PHP, MySQL, Как получить данные из Базы Данных, Добавить данные в Базу Данных

В этом уроке Вы научитесь работать с СУБД MySQL средствами PHP. После этого урока у Вас будет достаточно знаний, чтобы написать второй Facebook...

MySQL + PHP

...пока его не взломают :D В этом уроке Вы получите основы работы с Базами Данных. И действительно, у Вас появится представление о том, как работают такие сложные проекты как Facebook.

Средства PHP для работы с MySQL

Подключение к БД

Перед тем как работать с базой данных, необходимо установить с ней соединение. Для этого служит функция mysql_connect(). Результат выполнения функции — дескриптор соединения, который пригодится, только если вы собираетесь работать сразу с несколькими подключениями. В большинстве случаев это не требуется, и результат выполнения функции проверяют лишь на неравенство false (это означает, что подключение прошло успешно).

int mysql_connect (
   [ string $server = ini_get("mysql.default_host") [,
   string $username = ini_get("mysql.default_user") [,
   string$password = ini_get("mysql.default_password") [,
   bool $new_link = false [,
      int $client_flags = 0]]]]])

Функция принимает множество параметров, и все они необязательны. Подробнее об их назначении можно прочитать в документации. Чаще всего функция вызывается с тремя параметрами:

mysql_connect($server, $username, $password);

Если вы тестируете сайт на локальном компьютере и у вас установлен пакет Денвер, то параметры должны быть следующими (если вы, конечно, не меняли конфигурацию):

$server = 'localhost';
$username = 'root';
$password = '';

Когда сайт работает на удаленном сервере, параметр $server остается "localhost" , $username и $password определяются при создании пользователя базы данных. Параметр localhost говорит сценарию о том, что база данных находится одном и том же сервере, что и исполняемый сценарий, что является истиной в большинстве случаев и при разработке сайта на локальном компьютере и при работе сценария в Интернете.

Выбор БД

int mysql_select_db(string $dbname [, int $link_identifier])

До того как послать первый запрос серверу MySQL, необходимо указать, с какой базой данных мы собираемся работать. Для этого и предназначена функция mysql_select_db() .

Она уведомляет PHP, что в дальнейших операциях с соединением $link_identifier (или с последним открытым соединением, если указанный параметр не задан) будет использоваться база данных $dbname . Функция возвращает true в случае успеха, иначе — false .

Выполнение SQL-запросов

int mysql_query(string $query [, int $link_identifier])

Запрос к базе данных. Текст запроса формулируется на языке SQL. Для запросов на выборку данных функция возвращает идентификатор результата в случае успеха и false в случае ошибки. Для запросов, не подразумевающих результат ( INSERT , UPDATE , DELETE ), функция в случае успеха возвращает true .

Получение результата выборки в виде массива

array mysql_fetch_array(int $result)

Функция извлекает очередную строку результата выборки данных. В качестве параметра принимает идентификатор, полученный вызовом функции mysql_query() . Возвращает массив, состоящий из значений каждого столбца текущей строки. В качестве ключа — порядковый номер столбца (начиная с нуля). Когда извлекать больше нечего, функция возвращает false. Пример приведен ниже:

$server ='localhost';
$username = 'root';
$password = '';
$dbname = 'lesson8';

mysql_connect($server, $username, $password);
mysql_select_db($dbname);
$result = mysql_query('SELECT id_dept, name FROM depts');

while ($row = mysql_fetch_array($result))
{
   echo '<li>';
   echo '<a href="dept.php?id_dept=' . $row[0] . '">';
   echo $row[1];
   echo '</a>';
   echo '</li>';
}

Получение результата выборки в виде ассоциативного массива

array mysql_fetch_assoc(int $result)

Функция аналогична mysql_fetch_array(), но возвращает ассоциативный массив, в котором в качестве ключа выступает имя столбца:

$result = mysql_query('SELECT id_dept, name FROM depts');

while ($row = mysql_fetch_assoc($result))
{
   echo '<li>';
   echo '<a href="dept.php?id_dept=' . $row['id_dept'] . '">';
   echo $row['name'];
   echo '</a>';
   echo '</li>';
}

Получение числа строк в выборке

int mysql_num_rows(int $result)

Функция возвращает число строк, содержащееся в результате выборки данных:

$result = mysql_query('SELECT id_dept, name FROM depts');

$count = mysql_num_rows($result);
for ($i = 0; $i &lt; $count; $i++)
{
   $row = mysql_fetch_array($result);
   echo '<li>';
   echo '<a href="dept.php?id_dept=' . $row['id_dept'] . '">';
   echo $row['name'];
   echo '</a>';
   echo '</li>';

Получение числа измененных строк

int mysql_affected_rows([resource $link_identifier])

Функция возвращает число строк, затронутых последним запросом INSERT , UPDATE или DELETE:

mysql_query("DELETE FROM emps WHERE id_dept='2'");
   $count = mysql_affected_rows();
   echo 'Уволены все сотрудники из отдела маркетинга. Их было $count чел.';

Получение информации об ошибках

int mysql_errno([ int $link_identifier])
string mysql_error([ int $link_identifier])

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

$result = mysql_query($query_text);

if ($result == false)
{
   $err_code = mysql_errno();
   $err_text = mysql_error();

   die("Ошибка MySQL #$err_code: $err_text" . "<br>"."при выполнении SQL запроса: query_text");
}

В заключение

Тема баз данных слишком обширна, чтобы уместить ее в одном уроке. Однако собранные в этом уроке знания помогут начать изучение этой области и использовать базы данных в ваших проектах уже сейчас!

Ни один серьезный проект не обходится без использования базы данных. Советуем поглубже изучить эту область. Чтобы составлять быстрые грамотные запросы к БД, вы должны хорошо владеть языком SQL. Умение работать с базами данных будет требоваться вам на всем протяжении работы в IT.

605
0
Пожалуйста, авторизируйтесь, чтобы скачать архив с файлами урока