В общем что-то стало скучно, да и новостей на SFB новых давно не появлялось и я решил написать статью об использовании ООП (для базы данных) в своих скриптах…Что такое ООП и зачем его использовать не буду, просто скажу что если что-либо менять то с ООП это будет быстрее. В нашем случае это переход с mysql на mysqli. Если вы очень хотите узнать чем лучше ООП в отличии от процедурки, то есть гугл, Велик, Rufus и NGS
Для начала качаем архив и папку classes заливаем в корень сайта. В папке класс для работы с бд, взятый с DLE. Свой мне всегда лень писать, поэтому юзаю этот
После того, как закинули папку в корень вам надо открыть файл 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 ++
После скачивания устанавливаем его. Открываем и выбираем Поиск-> Найти в файлах.
В строчке найти пишем: 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
#Юзайте эту функцию, для того чтоб скулей везде не было
Найти: mysql_real_escape_string
Заменить: $db->safesql
Теперь вроде и всё. А, не забыл
Сейчас начинается самое сложное
Нам нужно заменить все mysql_result. В MySqli Такой функции нет, поэтому придётся всё переделывать. В строке найти пишем mysql и нажимаем найти всё
После результатов поиска у вас выводится список всех файлов, где были найдены совпадения
И в каждый файл, который там есть заходим и меняем следующее:
Будут приблизительно 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 и в репу
Отправить комментарий
Вы должны быть зарегистрированы чтобы оставить комментарий.
Вы должны быть зарегистрированы чтобы оставить комментарий.