TalkPHP

TalkPHP (http://www.talkphp.com/forums.php)
-   MySQL & Databases (http://www.talkphp.com/mysql-databases/)
-   -   Mysql resources in array? (http://www.talkphp.com/mysql-databases/2915-mysql-resources-array.html)

SpYkE112 06-06-2008 05:52 PM

Mysql resources in array?
 
Isn't it possible to store multiple mysql connections to different databases in an array? So far i'm able to store them, but it is the same resource in both entries..
My print_r dump looks like this:
Code:

Array
(
    [dev1] => Resource id #7
    [pureftpd] => Resource id #7
)

My code looks like this:
PHP Code:

<?php
//Check if ticket
if (!defined('BACKEND_TICKET'))
{
    die();
}

class 
database extends p101
{
    public 
$link = array();
    public 
$db 'mysql';

    public function 
connect()
    {
        global 
$p101;
        static 
$host 'localhost';
        static 
$user '';
        static 
$pass '';
        static 
$name = array(
                            
=> 'dev1',
                            
=> 'pureftpd'
                            
);
                                
        switch(
$this->db)
        {
            case 
'mysql':
            {
                foreach(
$name as $val)
                {
                    if (
$this->link[$val] = mysql_connect($host$user$pass))
                    {
                        
                        if (
mysql_select_db($val$this->link[$val]))
                        {
                            return(
true);
                        } else
                        {
                            
$p101->error[] = 'Unable to select database: ' $val '!';
                        }
                        
                    } else 
                    {
                        
$p101->error[] = 'Unable to connect to database!';
                    }
                    
                }
                break;
            }
        }
    }
    
    public function 
query($sql,$return null,$link)
    {
        
$buffer = array();
        switch(
$this->db)
        {
            case 
'mysql':
            {
                switch(
$return)
                {
                    case 
'assoc':
                        {
                            return(
mysql_fetch_assoc(mysql_query($sql,$this->link[$link]))) or die(mysql_error());
                        }
                    case 
'array':
                        {
                            
//return(mysql_fetch_assoc(mysql_query($sql,$this->link[$link])));
                        
}
                    case 
'exec':
                        {
                            if (
mysql_query($sql,$this->link[$link]))
                            {
                                return(
true);
                            } else 
                            {
                                return(
false);
                            }
                        }    
                    default:
                        {
                            return(
mysql_query($sql,$this->link[$link]));
                        }
                
                }
                break;
            }
        }
    }
    
    public function 
__destruct()
    {
        foreach(
$this->link as $key => $val)
        {
            
mysql_close($this->link[$key]);
        }
    }
}

?>

Any ideas how to do this? Or is it just not possible?

xenon 06-06-2008 06:38 PM

Well, that's because you don't pass the fourth parameter to the mysql_connect function as true (it's false by default). Add it and then you'll have different connections.

The definition of the mysql_connect function:

Code:

resource mysql_connect    ([ string $server    [, string $username    [, string $password    [, bool $new_link    [, int $client_flags  ]]]]] )
The $new_link is the parameter you need to set to true if you want separate connections.

SpYkE112 06-06-2008 06:46 PM

Thanks a lot, it did the trick :)


All times are GMT. The time now is 05:23 AM.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0