mySQL урок 2. Соединение с базой данных mysql посредством php

На уроке будет рассмотрен пример соединения с базой данных mySQL посредством языка php и необходимые для этого функции php; разобраны конкретные примеры соединения с mySQL

Далее к уроку 3 SQL запросы select

Соединение с базой данных посредством php

Соединение с базой данных происходит в 4 этапа:

  1. Открыть соединение с сервером
  2. Выбрать базу данных
  3. Послать запрос базе дынных
  4. Закрытие БД (не всегда)

Рассмотрим на примерах каждый этап отдельно:

Соединение с сервером посредством php

  1. Создание переменной, ассоциирующейся с соединением с сервером mySql:
  2. 1
    2
    3
    4
    5
    
    <?php
    $conn = mysql_connect ("localhost", "root", "");mysql_close($conn);
    ?>

    Функция языка php mysql_connect — открывает соединение с сервером MySQL. Три параметра функции:

    1. "localhost" — сервер, при работе локально указывается значение «localhost»
    2. "root" — имя пользователя, при работе локально обычно указывается «root»
    3. "" — третий параметр — пароль, локально пароль отсутствует
  3. Обработка возможной ошибки
  4. 1
    2
    3
    4
    5
    6
    7
    
    <?php
    $conn = mysql_connect ("localhost", "root", "")
     	or die("Нет соединения: " . mysql_error());
    print ("Удачно соединено");mysql_close($conn);
    ?>

    or die (mysql_error())
    Функция php mysql_error() возвращает строку ошибки последней операции с MySQL и может быть использована не только при попытке соединения с сервером, но и в других вариантах работы с базой данных mysql

Выбор базы данных mySQL и соединение с ней

<?php
$conn = mysql_connect ("localhost", "root", "")
 	or die("Нет соединения: " . mysql_error());
print ("Удачно соединено");
mysql_select_db("db_name", $conn);
?>

Функция php mysql_connect — выбирает базу данных MySQL. Два параметра функции:

  • "db_name" — имя базы данных
  • $conn — указатель на соединение
  • Создание запроса к базе данных

    <?php
    $conn = mysql_connect ("localhost", "root", "")
     	or die("Нет соединения: " . mysql_error());
    print ("Удачно соединено");
    mysql_select_db("db_name", $conn);
    $sql="SELECT * FROM  `teachers` WHERE  `name`='Иванов'" ;
    $sql= (string) $sql;
    $result = mysql_query($sql, $conn)
    or die ("no!".mysql_error());
    ?>

    Функция php mysql_query — посылает запрос активной базе данных сервера, на который ссылается переданный указатель. Два параметра функции:

  • $sql — запрос
  • $conn — указатель на соединение
  • Важно: Чтобы проще обнаружить ошибку можно выводить запрос:

    echo $sql;

    Обработка результатов запроса к базе mySQL

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    <?phpmysql_select_db("db_name", $conn);
    $sql="SELECT * FROM  `teachers` WHERE  `name`='Иванов'" ;
    $sql= (string) $sql;
    $result = mysql_query($sql, $conn)
    or die ("no!".mysql_error());
    while($row = mysql_fetch_array($result)) {
    	$name=$row["name"];
    	$zp= $row["zarplata"];
    	echo $name.' '. $zp;
    }
    ?>

    Функция php mysql_fetch_array — возвращает массив с обработанным рядом результата запроса или FALSE, если рядов, отвечающих параметрам запроса, нет

    Решение проблем с кодировкой

    Важно: в ряде случаев, если результаты не выдаются, следует поменять кодировку на windows12-51
    1
    2
    3
    4
    5
    
    $conn = mysql_connect ("localhost", "root", "")
     	or die("Нет соединения: " . mysql_error());
    print ("Удачно соединено");
    mysql_select_db("institute", $conn);
    mysql_query("SET NAMES cp1251");

    Использование для обработки цикла foreach

    1
    2
    3
    4
    
    foreach($result as $row){
    	$name=$row["name"];
    	$zp= $row["zarplata"];
    }
    Пример: вывести все записи для фамилии Иванов
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    $conn = mysql_connect ("localhost", "root", "")
     	or die("Нет соединения: " . mysql_error());
    print ("Удачно соединено");
    mysql_select_db("institute", $conn);
    $sql="SELECT * FROM  `teachers` WHERE  `name`='Иванов'" ;
    $sql= (string) $sql;
    $result = mysql_query($sql, $conn)
    	or die ("no!".mysql_error());
    // сохраняем результат в виде массива $row
    $row=mysql_fetch_array($result);
    print_r($row);

    функция php print_

    Функция print_r() в php предназначена для вывода удобочитаемой информации о переменной

    Важно: Абсолютно одинаковым результатом будет обращение к полю по его имени и по его номеру:

    echo $row["name"];

    и

    echo $row[1];

    Для отображения всех значений используется цикл:

    while($row=mysql_fetch_assoc($result)){
      echo $row["name"]."<br>";
    }

    Точечная выборка (одной записи)

    Синтаксис:

    mysql_result($result, int row, string field)
    Пример: Выбираем значение поля "name" в записи под номером 1
    mysql_result($result, 1, "name")
    Задание php mysql 1: Выполните запрос на выборку id и name из таблицы учителей.
    Отобразите данные на странице в виде: id: name

    Дополнительные php функции для работы с mySQL

    mysql_num_rows($result); // Количество записей
    // пример:
    echo mysql_num_rows($result); // Количество записей
     
    mysql_num_fields($result); // Количество полей
    // пример:
    echo mysql_num_fields($result); // Количество полей
     
    mysql_field_name($result,1); // имя поля под номером 1
    // пример:
    echo mysql_field_name($result,1); // имя поля под номером 1
     
    mysql_affected_rows([$conn]); // количество изменений
     
    mysql_insert_id([$conn]); //id последней записи
    Далее к уроку 3 SQL запросы select