Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Global переменная!ошибка регистрации! (https://forum.antichat.xyz/showthread.php?t=116661)

ZnikiR 19.04.2009 18:23

Ошибка при конекте к ДБ!
 
Привет!Извените что пришлось создать новую тему так как в темы для новичков ответа нет!

PHP код:


<?

    
function db_connect()
    {
        global 
$db;<!------22 ТРОКА

        
if ($db)
            return;

        
$db mysql_connect("localhost"MYSQLUSERMYSQLPASS);

        
mysql_select_db(MYSQLDB$db);

        if (!
$db)
        {
            echo 
"Couldn't open database!\n";
            exit;
        }
    }

    function 
db_disconnect()
    {
        global 
$db;

        if (
$db)
        {
            
mysql_close($db);
            
$db NULL;
        }
    }

    function 
db_query($q)
    {
        global 
$db;

        
$result mysql_query($q$db);
        return 
$result;
    }

    function 
db_fetch_array($result)
    {
        global 
$db;

        
$r mysql_fetch_array($result);
        return 
$r;
    }

    function 
db_query_row($q)
    {
        
$result db_query($q);

        if (!
$result)
            return 
NULL;

        
$row mysql_fetch_array($result);
        return 
$row;
    }

    function 
db_query_value($q)
    {
        
$row db_query_row($q);
        return 
$row[0];
    }

    function 
db_array_update($table$a$where)
    {
        
$q "update $table set ";
        
$b NULL;

        foreach(
$a as $key => $value)
        {
            if (
is_int($key))
                continue;

//            if (isset($value) && $value != "")
                
$b[] = "$key='$value'";
        }

        
$q .= implode(","$b);
        
$q .= " where ".$where;

        
db_query($q);
    }

    function 
db_array_insert($table$a)
    {
        
$q "insert into $table set ";
        
$b NULL;

        foreach(
$a as $key => $value)
        {
            if (
is_int($key))
                continue;
            if (
$value && $value != "")
                
$b[] = "$key='$value'";
        }

        
$q .= implode(","$b);

        
db_query($q);

    }

    function 
db_insert_id()
    {
        return 
mysql_insert_id();
    }

    function 
gen_id($table$column$size$characters_allow)
    {
        for(;;)
        {
            
$id random_string($sizeTRUE$characters_allow);
            
$q "select count(*) from $table where $column='$id'";
            
$count db_query_value($q);
            if (
$count == 0)
                break;
        }
        return 
$id;
    }

    function 
db_num_rows($result)
    {
        return 
mysql_num_rows($result);
    }
?>


GreenBear 19.04.2009 18:24

http://ru2.php.net/oop

ZnikiR 19.04.2009 18:38

Почитал!
Но так и не понял в чем проблема!
Так в чем проблема???
Вот что севак пишет Fatal error: Cannot redeclare db_connect() (previously declared in /home/www/***/inc/db.php:5) in /home/www/***/inc/db.php on line 3

GreenBear 19.04.2009 18:42

в подходе

L I G A 19.04.2009 18:46

попробуй так :
PHP код:

<? 

    
function db_connect() 
    { 
        global 
$db;
        if (
$db
            return; 

        
$db mysql_connect("localhost"MYSQLUSERMYSQLPASS); 

        
mysql_select_db(MYSQLDB$db); 

        if (!
$db
        { 
            echo 
"Couldn't open database!\n"
            exit; 
        } 
    } 

    function 
db_disconnect() 
    { 
        global 
$db

        if (
$db
        { 
            
mysql_close($db); 
            
$db NULL
        } 
    } 

    function 
db_query($q
    { 
        global 
$db

        
$result mysql_query($q$db); 
        return 
$result
    } 

    function 
db_fetch_array($result
    { 
        global 
$db

        
$r mysql_fetch_array($result); 
        return 
$r
    } 

    function 
db_query_row($q
    { 
        
$result db_query($q); 

        if (!
$result
            return 
NULL

        
$row mysql_fetch_array($result); 
        return 
$row
    } 

    function 
db_query_value($q
    { 
        
$row db_query_row($q); 
        return 
$row[0]; 
    } 

    function 
db_array_update($table$a$where
    { 
        
$q "update $table set "
        
$b NULL

        foreach(
$a as $key => $value
        { 
            if (
is_int($key)) 
                continue; 

//            if (isset($value) && $value != "") 
                
$b[] = "$key='$value'"
        } 

        
$q .= implode(","$b); 
        
$q .= " where ".$where

        
db_query($q); 
    } 

    function 
db_array_insert($table$a
    { 
        
$q "insert into $table set "
        
$b NULL

        foreach(
$a as $key => $value
        { 
            if (
is_int($key)) 
                continue; 
            if (
$value && $value != ""
                
$b[] = "$key='$value'"
        } 

        
$q .= implode(","$b); 

        
db_query($q); 

    } 

    function 
db_insert_id() 
    { 
        return 
mysql_insert_id(); 
    } 

    function 
gen_id($table$column$size$characters_allow
    { 
        for(;;) 
        { 
            
$id random_string($sizeTRUE$characters_allow); 
            
$q "select count(*) from $table where $column='$id'"
            
$count db_query_value($q); 
            if (
$count == 0
                break; 
        } 
        return 
$id
    } 

    function 
db_num_rows($result
    { 
        return 
mysql_num_rows($result); 
    } 
?>


ZnikiR 19.04.2009 18:55

спасибо огромное всё заработоло!
тему можно закрывать!
P.S.скоро представлю своё "творения" :p в паблик!)))

Deathdreams 20.04.2009 23:06

ппц вот смотри например.
зачем делать такие глупые функции?
вот например.
function db_query_row($q)
$result = db_query($q);

во всяком db_query будет юзатся быстрее, чем через функцию db_query_row($q);

ZnikiR 21.04.2009 18:02

да я понял что здесь очень тупой код!
я просто взял уже готовой и пожалел!
сейчас свой пишу!


Время: 06:50