Офис НП AMWAY в Ярославле
Купить продукцию Амвей в Ярославле
На карте Купить AMWAY в ЯрославлеПриобрести высококачественную продукцию Амвей в Ярославле, получить консультации по бизнесу, заказать продукцию или получить заказ:
Адрес: улица Валентины Терешковой, дом 1 (Вход со двора)
Телефон: +7 (920) 112-00-91
Email: matyxho@mail.ru
Сайт: https://www.amway.ru/user/lebedem
Визитка: http://yar.meweb.ru
Иерархия статей
Статьи » Программирование » Перевод CMS PHP-Fusion с mysql_* на mysqli_*
Сниппет
В PHP с версии 5.5.0 расширение mysql_* считается устаревшим, а наш старый добрый PHP-Fusion работает именно на нем. Попробуем исправить ситуацию и перевести его на mysqli_*. Настоятельно рекомендую перед всеми процедурами сделать бекап! Это бета-тест!
Перевод CMS PHP-Fusion с mysql_* на mysqli_*
Опубликовал  Pisatel Pisatel Добавлено  11-08-2015 11:14 11 Август 2015 11:14:19 7088  Прочтений 7088 Прочтений
 printer
Прелюдии не будет, сразу к делу.

Открываем файл maincore.php

Ищем:

Код: PHP
// Establish mySQL database connection

$link = dbconnect($db_host, $db_user, $db_pass, $db_name);

unset($db_host, $db_user, $db_pass);




Заменяем на:

Код: PHP
// New establish mySQL database connection

class _DB {

static $linkes;

public static function connectDB() {

global $db_host, $db_user, $db_pass, $db_name;

if (empty(self::$linkes)) {

self::$linkes = @mysqli_connect($db_host, $db_user, $db_pass, $db_name) or die("<strong>Unable to establish connection to MySQL</strong><br />".mysqli_connect_errno()." : ".mysqli_connect_error());

//mysqli_set_charset(self::$linkes, "cp1251"); // раскомментировать, если нужно

}

}

}

$link = _DB::connectDB(); // честно говоря не знаю, где еще может использоваться $link, поэтому оставлю так

unset($db_host, $db_user, $db_pass);




Ниже ищем:

Код: PHP
// MySQL database functions

function dbquery($query) {

global $mysql_queries_count, $mysql_queries_time; $mysql_queries_count++;



$query_time = get_microtime();

$result = @mysql_query($query);

$query_time = substr((get_microtime() - $query_time),0,7);



$mysql_queries_time[$mysql_queries_count] = array($query_time, $query);



if (!$result) {

echo mysql_error();

return false;

} else {

return $result;

}

}



function dbcount($field, $table, $conditions = "") {

global $mysql_queries_count, $mysql_queries_time; $mysql_queries_count++;



$cond = ($conditions ? " WHERE ".$conditions : "");

$query_time = get_microtime();

$result = @mysql_query("SELECT Count".$field." FROM ".$table.$cond);

$query_time = substr((get_microtime() - $query_time),0,7);



$mysql_queries_time[$mysql_queries_count] = array($query_time, "SELECT COUNT".$field." FROM ".$table.$cond);



if (!$result) {

echo mysql_error();

return false;

} else {

$rows = mysql_result($result, 0);

return $rows;

}

}



function dbresult($query, $row) {

global $mysql_queries_count, $mysql_queries_time;



$query_time = get_microtime();

$result = @mysql_result($query, $row);

$query_time = substr((get_microtime() - $query_time),0,7);



$mysql_queries_time[$mysql_queries_count] = array($query_time, $query);



if (!$result) {

echo mysql_error();

return false;

} else {

return $result;

}

}



function dbrows($query) {

$result = @mysql_num_rows($query);

return $result;

}



function dbarray($query) {

$result = @mysql_fetch_assoc($query);

if (!$result) {

echo mysql_error();

return false;

} else {

return $result;

}

}



function dbarraynum($query) {

$result = @mysql_fetch_row($query);

if (!$result) {

echo mysql_error();

return false;

} else {

return $result;

}

}



function dbconnect($db_host, $db_user, $db_pass, $db_name) {

global $db_connect;



$db_connect = @mysql_connect($db_host, $db_user, $db_pass);

$db_select = @mysql_select_db($db_name);

if (!$db_connect) {

die("<strong>Unable to establish connection to MySQL</strong><br />".mysql_errno()." : ".mysql_error());

} elseif (!$db_select) {

die("<strong>Unable to select MySQL database</strong><br />".mysql_errno()." : ".mysql_error());

}

}




Заменяем на:

Код: PHP
// New MySQL database functions

function dbm_result($res, $row, $field=0) {

$res->data_seek($row);

$datarow = $res->fetch_array();

return $datarow[$field];

}

function dbquery($query) {

global $mysql_queries_count, $mysql_queries_time; $mysql_queries_count++;



$query_time = get_microtime();

$result = mysqli_query(_DB::$linkes, $query);

$query_time = substr((get_microtime() - $query_time),0,7);



$mysql_queries_time[$mysql_queries_count] = array($query_time, $query);



if (!$result) {

echo mysqli_error(_DB::$linkes);

return FALSE;

} else {

return $result;

}

}



function dbcount($field, $table, $conditions = "") {

global $mysql_queries_count, $mysql_queries_time; $mysql_queries_count++;



$cond = ($conditions ? " WHERE ".$conditions : "");

$query_time = get_microtime();

$result = mysqli_query(_DB::$linkes, "SELECT COUNT".$field." FROM ".$table.$cond);

$query_time = substr((get_microtime() - $query_time),0,7);



$mysql_queries_time[$mysql_queries_count] = array($query_time, "SELECT COUNT".$field." FROM ".$table.$cond);



if (!$result) {

echo mysqli_error(_DB::$linkes);

return FALSE;

} else {

$rows = dbm_result($result, 0);

return $rows;

}

}



function dbresult($query, $row) {

global $mysql_queries_count, $mysql_queries_time;



$query_time = get_microtime();

$result = dbm_result($query, $row);

$query_time = substr((get_microtime() - $query_time),0,7);



$mysql_queries_time[$mysql_queries_count] = array($query_time, $query);



if (!$result) {

echo mysqli_error(_DB::$linkes);

return FALSE;

} else {

return $result;

}

}



function dbrows($query) {

$result = mysqli_num_rows($query);

return $result;

}



function dbarray($query) {

$result = mysqli_fetch_assoc($query);

if (!$result) {

echo mysqli_error(_DB::$linkes);

return FALSE;

} else {

return $result;

}

}



function dbarraynum($query) {

$result = mysqli_fetch_row($query);

if (!$result) {

echo mysqli_error(_DB::$linkes);

return FALSE;

} else {

return $result;

}

}




Далее файл themes/templates/footer.php

Ищем:

Код: PHP
mysql_close($db_connect);




Заменяем на:

Код: PHP
mysqli_close(_DB::$linkes);




Аналогично файл print.php

Ищем:

Код: PHP
mysql_close($db_connect);




Заменяем на:

Код: PHP
mysqli_close(_DB::$linkes);




Теперь открываем файл includes/error_handling_include.php

Ищем:

Код: PHP
  $errorId = mysql_insert_id();




Заменяем на:

Код: PHP
  $errorId = mysqli_insert_id(_DB::$linkes);




Это пока все, что обнаружил для замены. По мере обнаружения буду дополнять. Если кто-то сможет перевести PHP-Fusion с расширения mysql_* на mysqli_* более изящно- милости прошу отписать в комментариях, так как на звание МегаКулПрограммера не претендую.
Понравилась статья?
Метки для данной статьи
Похожие статьи
Поделиться:   
Последние активные темы форума
  Темы Просмотров Ответов Последние сообщения
folder Вопрос по переделке bb-кода
PHP, MySQL
18936 5 Pisatel
26. мая 2017
folder Вопросы по Ajax форме обратной связи
CMS PHP Fusion
52268 48 Ditrin
19. февраля 2017
folder BBCode YouTube Video Colorbox mod
CMS PHP Fusion
13267 2 Pisatel
10. декабря 2016
folder Как лучше создать собственную страницу?
CMS PHP Fusion
15494 17 Pisatel
11. мая 2016
folder Небольшие вопросы по скриптам магазина и катало...
PHP, MySQL
113479 80 Pisatel
11. января 2016
folder BBCode Code mod
CMS PHP Fusion
11981 0 Pisatel
31. августа 2015
folder Ajax Like Dislike Article Panel
CMS PHP Fusion
19033 16 Pisatel
07. июля 2015
folder Хлебные крошки / BreadCrumbs SEO Panel
CMS PHP Fusion
21973 17 Pisatel
04. июля 2015
folder Abbr Description BBCode
CMS PHP Fusion
6621 0 Pisatel
15. июня 2015
folder Плагин Email рассылки Mail To All by Pisatel
CMS PHP Fusion
31415 32 Pisatel
26. апреля 2015
folder Подозрительный трафик и прочие страшилки
Всякая хрень
10365 2 Ditrin
23. апреля 2015
folder Мод Newsletter - рассылка писем пользователям с...
CMS PHP Fusion
16050 13 Pisatel
10. апреля 2015
folder Мод отправки писем PHPMailer для PHP-Fusion
CMS PHP Fusion
102199 113 Ditrin
06. апреля 2015
folder Появление неизвестного файла subscriptions.php
CMS PHP Fusion
7826 2 Pisatel
06. апреля 2015
folder Autoban on IP
CMS PHP Fusion
21320 13 Pisatel
03. апреля 2015