Переводим свой сайт на MySqli с использованием ООП

В общем что-то стало скучно, да и новостей на SFB новых давно не появлялось и я решил написать статью об использовании ООП (для базы данных) в своих скриптах…Что такое ООП и зачем его использовать не буду, просто скажу что если что-либо менять то с ООП это будет быстрее. В нашем случае это переход с mysql на mysqli. Если вы очень хотите узнать чем лучше ООП в отличии от процедурки, то есть гугл, Велик, Rufus и NGS

Для начала качаем архив и папку classes заливаем в корень сайта. В папке класс для работы с бд, взятый с DLE. Свой мне всегда лень писать, поэтому юзаю этот wink

После того, как закинули папку в корень вам надо открыть файл config.php и скопировать полностью его содержимое. Там вы увидите следующее

<?
###############################
# Хоть копирайт надо поставить :)
# Статью на шопе накатал и помог в объяснении всего Scrin
# http://sfb.su/user/Scrin/
# ICQ 20-76-79
###############################

#Устанавливаем абсолютный путь
define ( 'DIR', dirname ( __FILE__ ) );

#Подключаем Класс для работы с Mysqli
include_once DIR."/classes/mysqli.class.php";

#Объявляем константы с данными
define ("DBHOST", "localhost");

define ("DBNAME", "Имя базы данных");

define ("DBUSER", "Пользователь Бд");

define ("DBPASS", "Пароль для бд");  
#Не менять!!
define ("COLLATE", "cp1251");

$db = new db;
?>

Весь код прокомментирован, поэтому проблем не должно возникнуть. Прописываем свои данные для доступа к базе данных и полученное содержимое копируем в буфер обмена. Открываем с сайта Ваш config.php и удаляем оттуда всё содержимое. После того, как всё удалили вставляем то что получилось ранее и сохраняем.

Теперь нам надо скачать себе Notepad ++

После скачивания устанавливаем его. Открываем и выбираем Поиск-> Найти в файлах.

Переводим свой сайт на MySqli с использованием ООП

В строчке найти пишем: mysql_close($con);
В строчке заменить пусто
Фильтры: Всегда будет *.php
Папка: Папка с скачанным скриптом без папки с классом(который недавно закидывали и админки)
И нажимаем Заменить всё.

Далее будет идти:
Найти — Что надо вводить в строчке найти
Заменить — Что надо вводить в строчке Заменить

#Закрывать соединение нам не надо, поэтому просто удаляем его
Найти: mysql_close();
Заменить — пусто

#Дальше просто всё переводим на mysql
Найти: mysql_query
Заменить: $db->query

Найти: mysql_fetch_array
Заменить: $db->get_row

Найти: mysql_fetch_assoc
Заменить: $db->get_row

#Да, есть такая функция в гугле почитайте про неё
Найти: mysql_insert_id
Заменить: $db->insert_id

#Юзайте эту функцию, для того чтоб скулей везде не было fellow
Найти: mysql_real_escape_string
Заменить: $db->safesql

Теперь вроде и всё. А, не забыл facepalm

Сейчас начинается самое сложное wink

Нам нужно заменить все mysql_result. В MySqli Такой функции нет, поэтому придётся всё переделывать. В строке найти пишем mysql и нажимаем найти всё

После результатов поиска у вас выводится список всех файлов, где были найдены совпадения

Переводим свой сайт на MySqli с использованием ООП

И в каждый файл, который там есть заходим и меняем следующее:
Будут приблизительно 3 варианта с mysql_result в этом скрипте:

Первый:


$id=mysql_result($db->query("SELECT bla FROM …"),0,0);


Это мы заменяем на


$id2 = $db->super_query("SELECT bla FROM …");
$id = $id2["bla"];

Второй:


$sql = 'SELECT bla FROM …';
$row = $db->query($sql);
$count = $db->num_rows($row);
$id = mysql_result(($row),0,0);

Заменяем на:


$sql = 'SELECT bla FROM …';
$row = $db->query($sql);
$count = $db->num_rows($row);
$id2 = $db->get_row($row);
$id = $id2["bla"];

И последний:


$sql_id = $db->query("SELECT bla FROM …");
$id = mysql_result(($sql_id),0,0);


Заменяем на:


$sql_id = $db->super_query("SELECT bla FROM …");
$id = $sql_id["bla"];

Если у кого-то что-то не получилось, то пишем это в комменты, а лучше мне в ICQ.

Все спасибо на кошелёк: R176684640041 и в репу smile

Автор публикации

не в сети 7 лет

Scrin

Комментарии: 1Публикации: 9Регистрация: 01-06-2012

Понравилась статья? Поделись в соц. сетях:

Похожие новости

Отправить комментарий

wpDiscuz
Авторизация
*
*
Регистрация
*
*
*
Генерация пароля