Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MySQL using by functions 
:(
    Опции темы
Mal Hack
Дата 20.5.2006, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Данный код любезно предоставлен MuToGeN ([email protected])
Код

<?
// имя хоста MySQL сервера:
$dbHost="127.0.0.1";

// логин MySQL:
$dbLogin="root";

// пароль MySQL:
$dbPass="";

// используемая по умолчанию база данных:
$dbName="db_name";

// сообщение, которое выдается клиенту, если произошла
// ошибка и режим отладки отключен:
$dbErrorMsg="An error occured.<br>\nPlease try again later.<br>\n";

// режим отладки: если true, то все сообщения об ошибках
// будут передаваться клиенту, если false, то клиенту выдается
// $dbErrorMsg, а сообщение об ошибке отправляется на
// емаил разработчику
$debug=true;

// емаил разработчика: используется для пересылки сообщений
// об ошибках, если режим отладки отключен
$developerEmail="[email protected]";

// error reporting
function report($msg)
{
global $debug,$dbErrorMsg,$developerEmail;
if($debug)
echo nl2br("<b>$msg</b>");
else
{
mail($developerEmail,"MySQL error",$msg);
echo $dbErrorMsg;
}
exit();
}

// mysql_query() + проверка правильности запроса и report(),
// если запрос содержал ошибки
function mq($query)
{
global $REQUEST_URI;
$result=@mysql_query($query);
$error=mysql_errno();
if($error!=0)
{
$msg="MySQL query error.\nQuery was:\n$query\nMySQL returned:\n$error: ".
mysql_error()."\n\$REQUEST_URI:\n$REQUEST_URI";
report($msg);
}
return $result;
}

// пытается установить постоянное соединение с MySQL сервером,
// если не получается, то пытается установить обычное соединение,
// если и это не выходит, то report(). если соединение было
// установлено, то выбирает БД ($dbName)
function connect()
{
global $link,$isPersistent,$dbHost,$dbLogin,$dbPass,$dbName;
$link=@mysql_pconnect($dbHost,$dbLogin,$dbPass);
if(!$link)
{
$isPersistent=true;
$link=@mysql_connect($dbHost,$dbLogin,$dbPass);
if(!$link)
{
$msg="Could not open both persistent and temporary connection to MySQL DB
server: $dbLogin@$dbHost";
report($msg);
}
}
else
$isPersistent=false;
mq("USE $dbName;");
}

// проверяет, было ли соединение с MySQL постоянным, если нет,
// то разрывает соединение
function disconnect()
{
global $link,$isPersistent;
if(!$isPersistent)
mysql_close($link);
}
?>

пример:

<?

require("db_lib.php");
// приведенный выше фаил

connect();

$r=mq("SELECT host FROM mysql.user;");
// то же самое, что $r=mysql_query("SELECT host FROM mysql.user;");,
// запрос без ошибок.

$r=mq("SELECT nonExistentField FROM mysql.user;");
// ошибочный запрос. выдаст клиенту или перемылит
// разработчику (в зависимости от $debug) сообщение с
// описанием ошибки: Unknown column 'nonExistentField' in 'field list'

disconnect();

?>

 Немного доработал mq(), логирование запросов. Если второй параметр true, то все сейвится в sql.log в той же папке, где лежил скрипт, в который заинклюдили эту библиотечку.
Полезно для поиска семантических ошибок в запросах.
Код
function mq($query,$log=false){
        global $REQUEST_URI;
        $result=@mysql_query($query);
        $error=mysql_errno();
        if($error!=0){
                $msg="MySQL query error.\nQuery was:\n$query\nMySQL returned:\n$error: ".
                     mysql_error()."\n\$REQUEST_URI:\n$REQUEST_URI";
                report($msg);
        }
        if($log){
                $fp=fopen("./sql.log","a");
                fwrite($fp,$PHP_SELF.", ".date("d.m.Y H:i:s").": ".$query."\r\n");
                fclose($fp);
        }
        return $result;
}
 


PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0669 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.