Доброе (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.