SEO продвижение сайтов

Подключение к MySQL в PHP

    
    //Это данные для подключения к MySQL
    $host='localhost'; // адрес сервера 
    $user='root';      // Login
    $pass='';          // Пароль
    $base='sasha';     // Имя базы данных

    echo '<h2>У вас PHP '.phpversion()."версия</h2>\n";

PDO подключение PHP к MySQL

 
    //PDO подключение
    $opt=[
            PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,//Режим ошибки -> исключение
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,      //Ассоциативный массив
            PDO::ATTR_EMULATE_PREPARES   => false,                 //Режим эмуляции
        ];

    try 
    {
        $con=new PDO("mysql:host=$host;dbname=$base;charset=utf8",$user,$pass,$opt);
        echo "<h4>Подключились new PDO</h4>\n";

        $sth=$con->prepare("SELECT * FROM `tovary` WHERE id >= :idMin and id <= :idMax");
        $sth->execute(['idMin'=>1,'idMax'=>5]);

        //$sth=$con->prepare("SELECT * FROM `tovary` WHERE id >= ? and id <= ?");//ИЛИ так...
        //$sth->execute([1,5]);

        foreach ($sth AS $row)
           print_r($row);

       $con=null;//Закрываем подключение
    } 
    catch (PDOException $e) 
    {
        die('Подключение не удалось new PDO: '.$e->getMessage());//exit;
    }  

Объектно-ориентированное подключение к MySQL

 
    //Объектно-ориентированный стиль
    @$con=new mysqli($host, $user, $pass, $base);
    if ($con->connect_error)
    {
        echo  'Подключение не удалось new mysqli: '.$con->connect_error."!<br>\n";//exit;
    }
    else
    {  
        echo  "<h4>Подключились new mysqli</h4>\n";

        $con->query('SET NAMES utf8');
        $stmt = $con->stmt_init();

        if(
        ($stmt->prepare("SELECT * FROM `tovary` WHERE id >= ? and id <= ?")===FALSE)
        OR ($stmt->bind_param('ii', $id_min=1, $id_max=5)===FALSE)//i–integer, d—double, s–строка
        OR ($stmt->execute()===FALSE)
        OR (($result=$stmt->get_result())===FALSE)//Буферизированный результат
        OR ($stmt->close()===FALSE)
        ) 
            die('Select Error (' . $stmt->errno . ') ' . $stmt->error);
        
        while ($row=$result->fetch_row()) 
            print_r($row);
        
        $con->close();//Закрываем подключение
    }

Процедурный стиль в PHP подключение к MySQL

 
    //Только до 5 версии!!! - Процедурный стиль
    @$con=mysql_connect($host,$user,$pass); //Соединение с Mysql echo $put;
    if ($con)
    {
        mysql_select_db($base);//Выбрать базу
        echo "<h4>Подключились mysql_connect()!</h4>\n";

        mysql_query('SET NAMES utf8');//Кодировка
        $rs=mysql_query('SELECT * FROM `tovary`;',$con);

        while ($row=mysql_fetch_assoc($rs)) 
            print_r($row);
        
        mysql_close($con);//Закрываем подключение
    }   
    else 
    {
        echo "Подключение не удалось mysql_connect !<br>\n";//exit;
    }

Реальное PHP подключение к MySQL

Паттерн Одиночка - Design Pattern Singleton

 
<?php
class Db
{
    private static $db=null;//Переменная подключение к базе

    //Это данные для подключения к MySQL
    private static $host='localhost'; // адрес сервера 
    private static $user='root';      // Login
    private static $pass='';          // Пароль
    private static $base='sasha';     // Имя базы данных
    
    //Подключение к базе
    public function conect()
    {
        if (self::$db===null)
        {
            try 
            {
                $opt=[
                    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,//Режим ошибки -> исключение
                    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,      //Ассоциативный массив
                    PDO::ATTR_EMULATE_PREPARES   => false,                 //Режим эмуляции
                ];

                self::$db=new 
PDO("mysql:host=".self::$host.";dbname=".self::$base.";charset=UTF8",self::$user,self::$pass,$opt);
                echo "1-е ПОДКЛЮЧЕНИЕ!!!?<br>\n";
            } 
            catch (PDOException $e) 
            {
                die('Подключение не удалось new PDO: '.$e->getMessage());//exit;
            }
        }
        else
            echo "ИСПОЛЬЗУЕМ 1-е ПОДКЛЮЧЕНИЕ..!<br>\n";

        return self::$db;
    }
    
    private function __construct() {}//Запрет создать объект
    private function __clone() {}    //Запрет клонировать объект
    private function __wakeup() {}   //Запрет  восстановлении любых соединений с базой данных
}

    
    $con=Db::conect();//1-е ПОДКЛЮЧЕНИЕ!!!
    $con=Db::conect();//ИСПОЛЬЗУЕМ 1-е ПОДКЛЮЧЕНИЕ..!
    $con=Db::conect();//ИСПОЛЬЗУЕМ 1-е ПОДКЛЮЧЕНИЕ..!

    $sth=$con->prepare("SELECT * FROM `tovary` WHERE id >= ? and id <= ?");//ИЛИ так...
    $sth->execute([1,5]);

    foreach ($sth AS $row)
        print_r($row);
?>

Автор: Алехин Геннадий (27.01.2020)

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


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

Ошибки в тексте выделить и Ctrl+Enter


Расскажи о нас друзьям

Web-технологии

SQL инъекции в PHP

Конечно, SQL инъекции в PHP возможны только при отсутствии проверки данных из форм и при наличии явных ошибках программистов. Я пишу эту статью для тех, кто НЕ хочет стать жертвой таких атак на свой сайт и для тех, кто хочет писать свои безопасные приложения.

Пишем форму для отправки логина и пароля для АВТОРИЗАЦИИ:

<form action="" method="POST">
        <input type="text" name="email" value="<?=$email?>"><br>
        <input type="text" name="pass" value="<?=$pass?>"><br>
        <input type="submit" name="subm" value="Авторизоваться">
</form>
Подробнее...

PHP-код вывода массивов в HTML

Все программисты PHP (с любым уровнем подготовки), конечно знаю, как вывести массив PHP в HTML-код: ну, конечно же через цикл!

Я предлагаю это сделать при помощи функции, которая отобразит любой массив в любом виде c HTML оформлением. Данной функции мы передаём в качестве аргументов: массив и формат отображения его в виде другой функции.

Такой подход даёт универсальность данной функции отображения массива и значительно сокращает дублирование PHP кода.

Пример:

Подробнее...

Composer — менеджер зависимостей в PHP

https://getcomposer.org/

  • Запускаем Open Server, открываем консоль,
  • Переходим в папку проекста - cd C:\Users\alehin_gv\Desktop\OSPanel\domains\test.ru
  • Скачиваем Композер - composer init
  • Устанавливается composer.json
Подробнее...
Интересные статьи

Стишки-депрессяшки

Стишки-депрессяшки

У меня нет попы

у меня нет тить

я должна работать

чтобы как то жить

©

В камасутре много

интересных поз

жаль у нас с женою

остеохондроз

©

Надо же приснится

всякая херня

прямо на работе

среди бела дня

Подробнее...

Почему или резонные вопросы

Почему или резонные вопросы

Хотель бы получить ответы на такие вопросы:

  1. Почему современные технологии одновременно позволяют производить банки для пива, которые не разлагаются на свалке за 100 лет, и кузова автомобилей, которые гниют за 3-4 года?
  2. Почему лимонный сок сделан из концентрата, а средство для мытья посуды – из настоящего лимона?
  3. Почему белая нитка, которой соединены новые носки, всегда оказывается прочнее, чем нитки, из которых сделаны сами носки?
Подробнее...

Детские загадки для взрослых

murzilka m

*Загадки, которые были опубликованы в журнале "Мурзилка" 30 лет назад!!! Сегодня они не для детей точно: ))*

1. Чтобы спереди погладить, нужно сзади полизать. (Почтовая марка)

2. Кругом волоса, посредине колбаса. (Кукуруза)

3. Сверху черно внутри красно, как засунешь так прекрасно. (Галоши)

Подробнее...

Оставить заявку

Закрыть
Заполните фрму и отправьте нам заяку
Заполните все обязательные поля*
captcha
Перезагрузить