Verification: a143cc29221c9be0

Php 7 mysqli как правильно подключить и работать

Php 7 mysqli как правильно подключить и работать

Создание БД и таблиц

Создать БД можно из панели управления хостингом, если есть такая возможность, а если нет, то из phpMyAdmin. Сравнение ставим utf8_general_ci.

Заходим в БД и создадим таблицу users, которую будем использовать для примера. Она будет включать колонки: ID(int), login(varchar) и pass(varchar). ID будет первичным ключом, а также будет иметь галочку напротив AI(auto increment), что позволит каждой новой записи присваивать id на 1 больше, чем у прошлой записи. Кроме этого, не забываем проставить длину varchar’ам и поставить сравнение utf8_general_ci к полям login и pass.

Получаем:

База данных

Теперь мы имеем готовую БД и таблицу для работы с ней.

Подключение к БД с помощью PHP

Создаём файл index.php и прописываем:

$user = 'root'; // пользователь

$password = ''; // пароль

$db = 'mydb'; // название бд

$host = 'localhost'; // хост

$charset = 'utf8'; // кодировка

// Создаём подключение

$pdo = new PDO("mysql:host=$host;dbname=$db;cahrset=$charset", $user, $password);

?>

Мы создали подключение к БД. Подключение от PDO не нужно закрывать, оно само закрывается, когда скрипт завершает свою работу.

Выборка данных

Здесь я сделаю небольшое отступление. Выбирать данные можно:

  • Ассоциативным массивом

PDO::FETCH_ASSOC — возвращает массив с названиями столбцов в виде ключей.

  • Объектом

PDO::FETCH_OBJ — возвращает анонимный объект со свойствами, соответствующими именам столбцов.

Fetch() — каждый раз извлекает следующую строку.

Конец отступления.

Продолжаем скрипт:

// Создаём запрос

$query = $pdo -> query('SELECT * FROM users');

// Перебираем способом ассоциативного массива

while ($row = $query->fetch(PDO::FETCH_ASSOC)) {

    echo $row['login']."
";
}

Здесь мы обращаемся к массиву $row по индексу login.

В данном случае код выведет логин всех, кто есть в таблице.

// Перебираем способом объекта

while ($row = $query->fetch(PDO::FETCH_OBJ)) {

    echo $row->login."
";
}

Здесь мы обращаемся к объекту $row по login.

В данном случае код выведет также логин всех, кто есть в таблице.

Выборка данных по параметру + защита

Мы можем выбирать определённые данные из таблицы. Например, мы можем выбрать все записи, где pass = 123, и тому подобные.

Вот первый пример выборки по логину + защита:

$login = 'Andre'; // Подставиться вместо знака вопроса

$sql = 'SELECT * FROM users WHERE login = ?'; // Формируем запрос

$query = $pdo -> prepare($sql); // Возвращает объект

$query -> execute([$login]); // В скобках указываем то, что заменит знак вопроса.


// Также перебираем массив, но теперь в массиве только те строки, где login = Andre

while ($row = $query->fetch(PDO::FETCH_ASSOC)) {

    echo $row['id'];

}

Можно указать несколько вопросительных знаков, а в execute перечислить замены для них через запятую.

Вот второй пример выборки по логину + защита:

$login = 'Andre'; // Подставится вместо :login

// Формируем запрос с помощью ключа

$sql = 'SELECT * FROM users WHERE login = :login'; 

$query = $pdo -> prepare($sql); // Возвращает объект

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

// А после передать значение, которое должно подставится.

$query -> execute(['login' => $login]); 


// Также перебираем массив, но теперь в массиве только те строки, где login = Andre

while ($row = $query->fetch(PDO::FETCH_ASSOC)) {

    echo $row['id'];

}

Можно указать несколько ключей, а в execute перечислить замены для них через запятую в формате ‘ключ’ => значение.

Второй способ использовать предпочтительнее, так как читаемость и понятность кода более понятна, чем в первом примере, но использовать можно два способа.

Вставка данных по параметру + защита

$login = 'Lorem'; // Подставиться вместо :login

$pass = 444; // Подставиться вместо :pass


// Формируем запрос с помощью ключей

$sql = 'INSERT INTO users (login, pass) VALUES (:login, :pass)';

$query = $pdo -> prepare($sql); // Возвращает объект


// В кавычках нужно указать ключи, которые мы указали в запросе.

// А после передать значение, которое должно подставится.

$query -> execute(['login' => $login, 'pass' => $pass]);

Теперь можем проверить таблицу. Видим, что всё сработало правильно.

Обновление данных по параметру + защита

$id = 7; // Подставиться вместо :id

$pass = 222; // Подставиться вместо :pass


// Формируем запрос с помощью ключей

$sql = 'UPDATE users SET pass = :pass WHERE id = :id ';

$query = $pdo -> prepare($sql); // Возвращает объект


// В кавычках нужно указать ключи, которые мы указали в запросе.

// А после передать значение, которое должно подставится.

$query -> execute(['pass' => $pass, 'id' => $id]);

Теперь можем проверить таблицу. Видим, что всё сработало правильно.

Выход PHP 7

На данный момент доступен PHP 7.0.0 Alpha выпуск 2. В самые ближайшие дни появится первая бета. Ни альфы ни беты не рекомендуются для реальной работы. Но попробовать их на тестовом сервере уже можно.

Тем паче, что изменения PHP7 очень значительны:

  • Увеличение производительности PHP 7 до двух раз по сравнению с PHP 5.6 (вот это да!)
  • Ожидаемая поддержка 64-бит
  • Многие фатальные ошибки теперь Exceptions (исключения)
  • Удаление старых и не поддерживаемых SAPI (программных интерфейсов серверных приложений) и расширений
  • Оператор NULL коалесцирующий (??)
  • Комбинированный оператор сравнения ()
  • Декларация возвращаемого типа
  • Декларация скалярного типа
  • Анонимные классы

Как установить PHP 7 на Windows

PHP любой версии почти всегда ставят в паре с сервером и системой управления базами данных. Если у вас совсем нет сервера, то обратитесь к статье «Установка и настройка сервера Apache, PHP, MySQL, phpMyAdmin на Windows 10». Когда в той статье дойдёте до установки PHP, то возвращайтесь сюда.

Если сервер у вас уже есть, то общие вопросы по обновлению вы найдёте в статье «Обновление сервера Apache и его компонентов».