Переход с mysql на mysqli в php 7

С развитием технологий программирования старые методы отбрасываются, а заместо них появляются более совершенные. Это можно видеть как в библиотеках jQuery - когда с ростом версии библиотек исчезает синтаксис старых функций, так и в php языке программирования.

На сегодня в php 7 исчезла стандартная команда для работы с БД mysql и большая часть функций, которая с ней связана. Теперь используется mysqli. Он доступен с версии php 5.3. Поэтому на 95% серверах лучше сразу программировать в новом формате под mysqli.

Рассмотрим методы перехода с mysql на mysqli

Подключение к БД (старое mysql):
mysql_connect($database_host, $database_user, $database_password);
mysql_query("SET NAMES 'utf8'");
mysql_select_db($database_name);

Подключение к БД (новое mysqli):
$connect = mysqli_connect($database_host, $database_user, $database_password, $database_name);
mysqli_query($connect, "SET NAMES utf8");

В обоих примерах:
$database_host - хост сервера
$database_user - пользователь БД
$database_password - пароль пользователя БД
$database_name - выбранная БД

Заметьте в новом подключении используется всего одна строка (переменная $connect), в которой сразу прописаны все данные. И в новом формате чаще всего mysql будет заменяться на mysqli.

Рассмотрим создание таблиц:

Старый синтаксис:
mysql_query("create table IF NOT EXISTS reitingpeopl (id int not null AUTO_INCREMENT, name TEXT(100000) not null, emails TEXT(100000) not null, PRIMARY KEY(id) ) DEFAULT CHARACTER SET utf8 ");

Новый синтаксис:
mysqli_query($connect, "create table IF NOT EXISTS reitingpeopl (id int not null AUTO_INCREMENT, name TEXT(100000) not null, emails TEXT(100000) not null, PRIMARY KEY(id) ) DEFAULT CHARACTER SET utf8 ");

Здесь все как и раньше, только mysql_query меняется на mysqli_query и добавляется $connect для соединения с БД.

Теперь рассмотрим циклы:

Старый синтаксис:
$podresult = mysql_query("select * from reitingpeopl where id='2'");
while ($podrow=mysql_fetch_array($podresult)) { Что-то делаем }

Новый синтаксис:
$podresult = mysqli_query($connect, "select * from reitingpeopl where id='2'");
while ($podrow=mysqli_fetch_array($podresult)) { Что-то делаем }

В новом синтаксисе используется mysqli_fetch_array вместо mysql_query и пишется $connect для подключения к БД.

В принципе это основы. Приведу пару примеров, которые также могут вами использоваться:
mysql_real_escape_string($_POST["yourid"]) меняется на: mysqli_real_escape_string($connect, $_POST["yourid"])
mysql_query("select * from reitingpeopl"); меняется на: mysqli_query($connect, "select * from reitingpeopl");

Еще популярные примеры команд (просто добавьте на конце i):
mysqli_fetch_row()
mysqli_fetch_assoc()
mysqli_fetch_array()
mysqli_num_rows()
mysqli_insert_id()
mysqli_close()

Если что-то вы не нашли, то это можно будет легко отыскать в справочниках. В любом случае mysqli в php 7 работает намного быстрее, чем mysql, поэтому не задумываясь переходите в новый формат!

Переход с mysql на mysqli в php 7: 3 комментария

  1. А можно както в 7 версии один раз законектиться и обработать несколько запросов. Ато из за этой вот команды mysqli_query($connect, "select * from reitingpeopl"); у меня сервер упал. Хотя я всего навсего 500 запросов сделал. Ну впринципе 1000 получилась Вначале проверить есть такая запись или нет а потом выполнить запись в БД.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Введите капчу: