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

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

С развитием технологий программирования старые методы отбрасываются, а заместо них появляются более совершенные. Это можно видеть как в библиотеках 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, поэтому не задумываясь переходите в новый формат!

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии