php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Problem mit: Cannot use object of type X as array


 
Sandmancw
13-02-2007, 19:09 
 
hey leute...
ich hab mich jetzt schon durch X seiten gewühlt, aber nix vernünftiges gefunden...

also, anscheinend nimmt meine funktion nur objekte an und ich übergebe einen array, aber seit wann geht das nicht?

bin jetzt von nem server mit php 4.X auf meinen vServer mit php 5.X umgezogen.

früher hab ich das immer mit define('',''); gemacht...

Fatal error: Cannot use object of type db_class as array in xxx on line 7


$db = array('host' => 'xxx',
'user' => 'xxx',
'pass' => 'xxx',
'name' => 'xxx');

bzw.

$db['host'] = "localhost";
$db['user'] = "game_constantwar";
$db['pass'] = "db_cw_xD2b4nGd";
$db['name'] = "constantwar";


die function:


function cw_connect($db)
{

$connect = mysql_connect($db['host'], <- line 7
$db['user'],
$db['pass'])

OR die(mysql_error());

$selectDB = mysql_select_db($db['name'],
$connect)

OR die(mysql_error());

return $selectDB;
}

 
Sandmancw
13-02-2007, 19:14 
 
kann nen mod bitte die daten vom zweiten array rauslöschen?

 
Damian1984
13-02-2007, 19:18 
 
du kannst es doch editieren!

 
unset
13-02-2007, 19:20 
 
Und auch so: Woher sollen wir wissen, wo localhost ist ;)

Zu dem Problem: Kann es evtl. sein, dass es da irgendwo zu einem Namenkonflikt gekommen ist?

 
Sandmancw
13-02-2007, 19:25 
 
ne, ich kann die beiträge leider nicht editieren, da kommt immer ich hab keine befugnisse und will die beiträge von anderen usern editieren :(


ne, alle namen sind die gleichen...

 
unset
13-02-2007, 19:27 
 
Na, ich will mal nicht hoffen, dass alle Namen gleich sind ;)

Was ich meine: Kann es evtl. sein, dass du $db später irgendwo nochmal als Objekt definierst?

 
deathcakeman
13-02-2007, 19:30 
 
muss man irgendetwas bestimmtes machen,
wenn man einen array/variable mit in eine klasse geben will?

 
unset
13-02-2007, 19:33 
 
Ja, und zwar sie nicht direkt zu setzen.

Aber hier gehts ja auch um eine Methode.

 
deathcakeman
13-02-2007, 19:37 
 
und wie macht man dieses "nicht direkt setzen"?

mfg

 
Sandmancw
13-02-2007, 19:40 
 
is ne funktion inna klasse, wie definiert man eig. methode? ^^
db_class heisst die klasse...

 
unset
13-02-2007, 19:43 
 
@deathcakeman:
mit:

__set()
__get()
__isset()
__unset()

@Sandmancw:
Könnte es sein, dass deine Initialisierung so ausschaut?

$db = new db_class($db)?

Nicht, dass ich jetzt ganz besonders viel Peil davon habe, aber so schauts für mich aus. Evtl. poste mal etwas mehr Code.

 
Sandmancw
13-02-2007, 19:45 
 
/** Verbindung starten **/
require('.xx');
$db = new db_class;
$db->cw_connect($db);



so schauts aus ^^,

 
unset
13-02-2007, 19:46 
 
Tja, damit ist $db kein Array mit deinen Zugangsdaten mehr, sondern ein Objekt der Klasse db_class.

Mehr Hinweise oder kommst du selbst drauf? ;)

 
Sandmancw
13-02-2007, 19:48 
 
hab ich kurz vor deinem letzten beitrag gemerkt *auffnkopfhau*
aahh ^^

 
Sandmancw
13-02-2007, 19:51 
 
achja, thx ganz vergessen...

 
wahsaga
13-02-2007, 20:14 
 
Das Edit-Recht für eigene Beiträge bekommt entzogen, wer sich derart dämlich benimmt (http://www.php-resource.de/forum/showthread.php?s=&threadid=81159).


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:21 Uhr.