Показать сообщение отдельно

  #5  
Старый 13.12.2009, 21:26
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме:
6462214

Репутация: 3171


По умолчанию

Нужно было потренироваться с дебагом скриптов.Написал обертку для работы с mysql.Ничего сверхестественного там нет,самая простая обертка.Но есть и плюсы.
1) Можно совсем отключить вывод ошибок внутри класса.
2) Если вывод ошибок всеже включен,то можно управлять выводимыми данными.Такими как текст ошибки mysql,путь до файла с ошибкой,линия с ошибкой.
Повторю,написан исключительно в образовательных целях дебага.
Базовый вызов,с запросом.
PHP код:
<?php
include ('mmysql.class.php');
$mysql = new mmysql('localhost''root''Frolov''mp3a');
$mysql->setting(array('debug' => true'full_path' => true,'mysql_query'=>true,'line' => true));  //МОЖНО ПРОПУСТИТЬ
$mysql->maquery("SELecT * FRM table WHERE id = 1"$stats);
print_r($stats);
?>
Сам класс:
PHP код:
<?php
class mmysql
{
    var 
$connect$ms_error$line_error$path_error,$debug;
    function 
mmysql($DBHOST$DBUSER$DBPASSWORD$DBBASE '')
    {
        
$this->connect mysql_connect($DBHOST$DBUSER$DBPASSWORD);
        if (!
$this->connect) {
            return (
$this->GetError());
        }
        if (!empty(
$DBBASE)) {
            
$this->msetdb($DBBASE);
        }
    }
    function 
setting($array)
    {
        if (
$array['debug'] == false) {
            return (
$this->debug $array['debug']);
        } else {
            
$this->debug $array['debug'];
            
$this->ms_error $array['mysql_query'];
            
$this->path_error $array['full_path'];
            
$this->line_error $array['line'];
        }
        return (
true);
    }
    function 
GetError()
    {
        if (!
$this->debug) {
            return (die());
        }
        
$bg debug_backtrace();
        
$error '<body style="background-color:#6699FF;color:black"><h1 align="center" color="red">MySQL Error!</h1><br>
<ul><b>File:</b><error style="background-color:white;"><b>&nbsp;&nbsp;&nbsp; ' 
.
            
$path = ((!$this->path_error) ? basename($bg[1]['file']) : $bg[1]['file']) .
            
'<b></error><br><b>Line</b>: <error style="background-color:white;"><b>&nbsp;&nbsp;&nbsp;' .
            
$line = ((!$this->line_error) ? 'Admin Line Hidden' $bg[1]['line']) .
            
'</b></error><br><b>Function:</b><error style="background-color:white;"> <b>[$mmysql->' .
            
$bg[1]['function'] .
            
'()]</b></error><br><b>Text error:<br> <textarea rows="10" cols="25" style="background-color:white;"> ' .
            
$ms = ((!$this->ms_error) ? 'Admin Query Hidden ' mysql_error()) .
            
'</textarea><br></ul></div>';
        die(
$error);

        return 
true;
    }
    function 
msetdb($db// mysql_select_db

    
{
        
$selectdb mysql_select_db($db$this->connect);
        if (
$selectdb) {
            return (
true);
        } else {
            return (
$this->GetError());
        }
    }
    function 
mquery($query, &$return// mysql_query

    
{
        
$query mysql_query($query$this->connect);
        if (!
$query) {
            return (
$return $this->GetError());
        } else {
            return (
$return $query);
        }
    }
    function 
mfquery($query, &$return// mysql_fetch_assoc(mysql_query)

    
{
        
$query mysql_query($query$this->connect);
        if (!
$query) {
            return (
$return $this->GetError());
        } else {
            return (
$return mysql_fetch_assoc($query));
        }
    }
    function 
maquery($query, &$return// mysql_fetch_array(mysql_query)

    
{
        
$query mysql_query($query$this->connect);
        if (!
$query) {
            return (
$return $this->GetError());
        } else {
            return (
$return mysql_fetch_array($query));
        }
    }
    function 
mnumrows($query, &$return// mysql_num_rows(mysql_query)

    
{
        
$query mysql_query($query$this->connect);
        if (!
$query) {
            return (
$return $this->GetError());
        } else {
            return (
$return mysql_num_rows($query));
        }
    }
}
?>

Последний раз редактировалось m0Hze; 13.12.2009 в 21:53..
 
Ответить с цитированием