Skip to main content

Конференции

Просмотр конференции fido7.ru.php:

Предыдущее Следующее

Дата: 06 Jan 2019, 17:18:07
От: Oleg Redut @ 2:5000/111.0
Кому: Sergey Anohin
Тема: wfido


    Доброе (current) время суток, Sergey!

 SA> Да в этом плане напихать global $link во все функции не сложно.
 SA> Вот я и думаю все голые mysql_ завернуть в функции, там их не так и
 SA> много, в основном query, fetch_object, num_rows да, может еще что по
 SA> мелочи.

    У меня в настоящий момент сделано так. Во всех скриптах, где нужна работа с мускулам, инклюдаются конфиги.

$base_dir=$_SERVER['DOCUMENT_ROOT'];
require("$base_dir/common/config.inc");
require("$base_dir/common/opendbi.inc");
include_once './fun_mysql.php';

=== Вырезка из филе .config ===
<?php
// Database configuration
$server="localhost"; //server name
$user="tuder";            //username of your database
$pass="pass";             //password of your database
$dbname="tuder";          //database name
?>
=== Кончилась врезка ===

=== Вырезка из филе opendbi.inc ===
<?php
    // Подключиться к mysql
    $dbi=mysqli_connect ($server, $user, $pass, $dbiname) or die ('I cannot connect to the database because: ' . mysqli_error($dbi));

    mysqli_query($dbi, 'SET NAMES utf8');
    mysqli_query($dbi, 'SET CHARACTER SET utf8');
    mysqli_query($dbi, 'SET COLLATION_CONNECTION="utf8_general_ci"');
?>
=== Кончилась врезка ===

А далее примерно так в теле скрипта

=== Вырезка из филе Windows Clipboard ===
    $query="SELECT `info`, CURRENT_TIMESTAMP-`time` FROM `whois` WHERE `nick`='".$who."' LIMIT 1";
// echo $query;
    $result=mysqli_query($dbi, $query); // находим нестарую информацию по юзеру в базе
    if (mysqli_num_rows($result) > 0) {
       list($info, $d_time)=mysqli_fetch_row($result); // если есть - извлекаем
    }
    if (mysqli_num_rows($result) > 0 && $d_time <=172800*4 ) { // 8 суток
        $info=unserialize($info); // если не старая - используем
    } else {
=== Кончилась врезка ===

    Почему не пишу тело запроса сразу в mysqli_query - должно быть понятно. :-)
Если операция мускулом не выполняется. А при этом никаких ошибок не сообщается, то я могу вывести на экран такой составной $query, скопировать и заюить в пхпмиадмин напрямую, отладить и снова в
ставить в код.

    А вот в fun_mysql.php собраны функции требующие обработки результатов запросов и там в каждой стоит глобал.

=== Вырезка из филе Windows Clipboard ===
function getWhoisList($t_id) {
    global $dbi;
    $query="SELECT whois FROM `info` WHERE t_id=".$t_id." ORDER BY whois";
    $result=mysqli_query($dbi, $query);

    while (list($whois)=@mysqli_fetch_row($result)) {
       $whoislist[]=$whois;
    }
    return $whoislist; // массив
}
=== Кончилась врезка ===

    Менял в своё время "mysql_" на "mysqli_" и потом "mysqli_query(" на "mysqli_query($dbi, ". Так захватывалось практически всё.

    Правда, у меня DOS Navigator.

    Что я могу еще сказать?..
                 Oleg

... AKA oleg(&)redut.info AKA ICQ 28852595

--- GoldED+/W64-MSVC 1.1.5-b20180707 (пока работает)
Origin: --- ...И все на наш редут... --- (2:5000/111)

Предыдущее Следующее

К списку сообщений
К списку конференций