Создание соединения с БД MySQL разными способами

Без соединения с базой данных (БД) сегодня не работает практически ни один сайт...поэтому и мы рассмотрим как соединяться с MySQL при помощи php...

Создание соединения с БД на PHP разными способами:

1) старый дедовский способ подключения к MySQL:

$conn=mysql_connect($db_hostname, $db_username, $db_password) or die ("Нет подключения к серверу");
mysql_select_db($db_database,$conn) or die ("Нет удалось соединиться с БД");

- пояснения к переменным ниже.

При этом используются функции:

  • mysql_connect() - для подключения к серверу;
  • mysql_select_db() - для подключения к БД;

При этом постоянно проверяем на наличие ошибки таким способом: or die ("Ошибка такая то"); - переводится как или умри с такой-то ошибкой - чтобы сразу найти где ошибка.

Пример соединения с БД на php с выборкой из таблицы

config.php

// переменные для соединения с БД
$host = 'localhost'; / хост
$username = 'root'; // пароль для подключения к БД
$password = ''; // пароль для подлючения к базе данных - на локальном компьютере он может иметь пустое значение.
$database_name = 'my-dolgi'; // имя БД

    // старый способ соедения с БД
    mysql_connect($host, $username, $password) or die("Не могу соединиться создать соединение");
    
    // выбрать БД. Если ошибка - вывести
    mysql_select_db($database_name) or die(mysql_error());

 

index.php

require_once 'config.php';

// Выполнить запрос. Если ошибка - выводим
    $result = mysql_query('SELECT Name, Money FROM Dolg ORDER BY Money DESC LIMIT 5') or die(mysql_error());
    
    echo "Кому я должен по убыванию: <br><br>";
    
    // Выборка результатов запроса
    while ( $row = mysql_fetch_assoc($result) ) {
        echo $row['Name'] . " с долгом " . $row['Money'] . " рублей.<br>";
    }
    
    // освобождение используемой памяти
    mysql_free_result($result);
    
    // Закрываем соединение
    mysql_close();

2) Более прогрессивный процедурный стиль - соединение с БД при помощи mysqli:

Данный способ:

  1. удобнее;
  2. быстрее до 40 раз;
  3. повышена безопасность;
  4. есть новые возможности и функции;

Пример соединения с БД на php с выборкой из таблицы

config.php


    // соедения с БД
    $link = mysqli_connect('localhost', 'username', 'password', 'name-database'); // тут вводим прям данные ваши: имя юзера, пароль и имя БД, первое поле обычно localhost
    
    // вывод ошибки соединения
    if (!$link) {
        echo "Ошибка подключения к БД. Код ошибки: " . mysqli_connect_error();
        exit;
    }   

!!! Обратите внимание - везде используется mysqli , а не mysql !!!

index.php

require_once 'config.php';

// Выполнить запрос. Если ошибка - выводим
    if ($result = mysqli_query($link, 'SELECT Name, Money FROM Dolg ORDER BY Money DESC LIMIT 5')) {
    
        echo "Кому я должен по убыванию: <br><br>";
    
        // Выборка результатов запроса
        while ( $row = mysqli_fetch_assoc($result) ) {
        echo $row['Name'] . " с долгом " . $row['Money'] . " рублей.<br>";
        }
    
        // освобождение используемой памяти
        mysqli_free_result($result);
    
        // Закрываем соединение
        mysqli_close($link);  
}

Как видим, некоторые моменты поменялись (выделены курсивом).

3) Объектно-ориентированный метод подключения к бд MySQL - с помощью методов и классов: 

Минусы: сложнее и менее восприимчив к ошибкам.

Плюсы: краткость и удобство для программистов с опытом.

$conn = new mysqli($db_hostname, $db_username, $db_password, $db_database);
    if($conn->connect_errno){
        die($conn->connect_error);
    } else {echo "Соединение с БД успешно установлено";}

тут в принципе все интуитивно понятно:

  • $db_hostname - это хост (в основном localhost),
  • $db_database - имя БД;
  • $db_username и $db_password - имя пользователя и пароль соответственно!

Пример соединения с БД на php стиль ООП с выборкой из таблицы

config.php


    // соедения с БД
    $mysqli = new mysqli ('localhost', 'username', 'password', 'name-database'); // тут вводим прям данные ваши: имя юзера, пароль и имя БД, первое поле обычно localhost
    
    // вывод ошибки соединения
    if ($mysqli->connect_error) {
        die ('Ошибка подключения к БД: ( ' . $mysqli->connect_errno . ') ' . mysqli_connect_error );
    }   

!!! Обратите внимание - везде используется mysqli , а не mysql !!! и в отличие от предыдущего метода появляются стрелочки "->", которые показывают, что это стиль ООП.

index.php

require_once 'config.php';

// Выполнить запрос. Если ошибка - выводим
    if ($result = $mysqli->query('SELECT Name, Money FROM Dolg ORDER BY Money DESC LIMIT 5')) {
    
        echo "Кому я должен по убыванию: <br><br>";
    
        // Выборка результатов запроса
        while ( $row = $result->fetch_assoc() ) {
        echo $row['Name'] . " с долгом " . $row['Money'] . " рублей.<br>";
        }
    
        // освобождение используемой памяти
        $result->close();
    
        // Закрываем соединение
        $mysqli->close();  
}

Задание вам такое - найти отличия.

4) Связь с БД при помощи PDO :

При соединении с базой данных MySQL используются подготовленные выражения(методом prepare) и в результате большая безопасность и сильно увеличивает быстродействие.

config файл от предыдущего метода! - такой же

index.php

// PDO стиль для связи с MySQL
    if ($stmt = $mysqli->prepare("SELECT Name, Voney FROM Dolg ORDER BY Money < ? LIMIT 5")) {
    
        $stmt->bind_param("i", $summa);
        $summa = 100000;
        

      //запускаем выполнение
        $stmt->execute();
        
        // Объявление переменных для заготовленных значений
        $stmt->bind_result($col1, $col2);
        
        echo "Кому я должен по убыванию: <br><br>";
        
        // Выборка результатов запроса
            while ( $stmt->fetch() ) {
            echo $col1 . " с долгом " . $col2 . " рублей.<br>";
        }
        
        // освобождение используемой памяти
        $stmt->close();
        
        // Закрываем соединение
        $mysqli->close();
        
    }

 Как видим, тут намного сложнее и надо изучать PDO - это отдельная тема.

Добавить комментарий


Защитный код
Обновить

Вы здесь: Сайтостроение Создание сайта Php Создание соединения с БД MySQL разными способами