address@hidden schrieb am 29.01.06 12:53:45:
-------- Original-Nachricht --------
Betreff: SV: [Phpgroupware-developers] php5 vs php4: db-handling
Datum: Sun, 29 Jan 2006 00:03:37 +0100 (CET)
Von: Sigurd Nes <address@hidden>
It seems like php5 differ from php4 when one needs a second db-object
inside a db->next_record()-loop.
In php4 one can do like this:
$this->db = $GLOBALS['phpgw']->db;
$this->db2 = $this->db;
While for php5 one has to alter to:
$this->db = $GLOBALS['phpgw']->db;
$this->db2 = CreateObject('phpgwapi.db');
$this->db2->Host = $GLOBALS['phpgw_info']['server']['db_host'];
$this->db2->Type = $GLOBALS['phpgw_info']['server']['db_type'];
$this->db2->Database = $GLOBALS['phpgw_info']['server']['db_name'];
$this->db2->User = $GLOBALS['phpgw_info']['server']['db_user'];
$this->db2->Password = $GLOBALS['phpgw_info']['server']['db_pass'];
The db initialization could be moved to a function to enable this:
$this->db2 = $GLOBALS['phpgw']->new_db;
Any thoughts?
<excerpt cite="http://www.zend.com/php5/andi-book-excerpt.php">
In PHP 5, the infrastructure of the object model was rewritten to work
with object handles. Unless you explicitly clone an object by using the
clone keyword you will never create behind the scene duplicates of
your objects. In PHP 5, there is neither a need to pass objects by
reference nor assigning them by reference. </excerpt>
HTH,
Earnie Boyd
Could you make an example of the db-class, and relate it to how it is
used trough out phpgroupware?
I have now in the app 'property' switched to initialize the db-classes
with a function new_db() - and it works fine with both php4 and php5.
(But of course - ther could be smarter ways...)
I have fixed this already within the probusines groupware ;-)
Could be simply fixed by doing this:
// $db2 = $this->db;
$db2 = CreateObject('phpgwapi.db');
$db2->Type = $this->db->Type;
$db2->Host = $this->db->Host;
$db2->Database = $this->db->Database;
$db2->User = $this->db->User;
$db2->Password = $this->db->Password;
$db2->connect();
Greetings
PowerStat
_______________________________________________________________________