From: Anton Gorlov <stalker@altlinux.ru>
To: sysadmins@lists.altlinux.org
Subject: Re: [Sysadmins] использовать php5 вместо php7
Date: Wed, 21 Aug 2019 22:49:35 +0300
Message-ID: <0e311aa4-0d76-4dfd-6d04-501025f736d1@altlinux.ru> (raw)
In-Reply-To: <47a2fc2f-bf39-fe80-6c55-886c7b050af1@yandex.ru>
https://github.com/dshafik/php7-mysql-shim
21.08.2019 22:46, Alexander Yereschenko пишет:
> 21.08.2019 12:21, Гусев Владислав Юрьевич пишет:
>> День добрый!
>>
>> После установки php7 как версии по умолчанию (через /etc/alternatives)
>> отвалился старый сайт, который не работает с php старше пятёрки.
>> Подскажите, пожалуйста, есть ли возможность в апаче2 для отдельного
>> сайта указать использование php5 (он тоже установлен)?
>>
>> Спасибо.
>>
> Был аналогичный случай, когда на хосте у заказчика только php7, и надо
> было запустить старый сайт на php5. Проблема была в использовании старых
> функций mysql_* для работы базой (эти функции из 7-ки выпилены в пользу
> mysqli_*
>
> Для совместимости использовался костыль - переопределение отсутствующих
> функций mysql через mysqli
>
> (можно доработать под свои нужды)
>
> ==================================================
>
> define('DB_SERVER', 'localhost');
> define('DB_SERVER_USERNAME', 'root');
> define('DB_SERVER_PASSWORD', 'pass');
> define('DB_DATABASE', 'test_db');
>
>
> if (function_exists("mysql_query")) {
>
> // до версии 5.6 включительно - работаем по-старому - mysql
>
> $link = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,
> DB_SERVER_PASSWORD) or die('No connect');
> $base = mysql_select_db(DB_DATABASE);
>
> mysql_query("SET NAMES utf8");
> } else {
>
> // иначе - используем mysqli
>
> class DB
> {
> static $link;
> static $count = 0;
>
> public static function connect()
> { // Синглтончик-с в целях экономии
> if (empty(self::$link)) {
> self::$link = @mysqli_connect(DB_SERVER,
> DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE)
> or die('No connect');
>
> mysqli_set_charset(self::$link, 'utf8');
> }
> }
> }
>
> // Запускаем не отходя от кассы
> DB::connect();
>
>
>
> // ------------- переопределяем функции mysql_
> -------------------------------------
>
> function mysql_query($sql)
> {
> $result = mysqli_query(db::$link, $sql)
> or die(mysqli_error(db::$link));
>
> return $result;
> }
>
> function mysql_real_escape_string($escapestr)
> {
> return mysqli_real_escape_string(db::$link, $escapestr);
> }
>
> function mysql_insert_id()
> {
> return mysqli_insert_id(db::$link);
> }
>
> function mysql_num_rows($result)
> {
> return mysqli_num_rows($result);
> }
>
> function mysql_error()
> {
> return mysqli_error(db::$link);
> }
>
> function mysql_fetch_array($result, $resulttype = MYSQLI_BOTH)
> {
> return mysqli_fetch_array($result, $resulttype);
> }
>
> function mysql_result($result, $number, $field = 0)
> {
> mysqli_data_seek($result, $number);
> $row = mysqli_fetch_array($result);
> return $row[$field];
> }
>
> function mysql_free_result($result)
> {
> return mysqli_free_result($result);
> }
>
> function mysql_data_seek($result, $offset)
> {
> return mysqli_data_seek($result, $offset);
> }
> }
>
> ==================================================
>
next prev parent reply other threads:[~2019-08-21 19:49 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-21 9:21 Гусев Владислав Юрьевич
2019-08-21 19:46 ` Alexander Yereschenko
2019-08-21 19:49 ` Anton Gorlov [this message]
2019-08-22 6:28 ` Гусев Владислав Юрьевич
2019-08-22 8:41 ` Anton Gorlov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0e311aa4-0d76-4dfd-6d04-501025f736d1@altlinux.ru \
--to=stalker@altlinux.ru \
--cc=sysadmins@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux sysadmins discussion
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sysadmins/0 sysadmins/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 sysadmins sysadmins/ http://lore.altlinux.org/sysadmins \
sysadmins@lists.altlinux.org sysadmins@lists.altlinux.ru sysadmins@lists.altlinux.com
public-inbox-index sysadmins
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sysadmins
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git