Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Vikaa on, mutta missä

Wizard [23.10.2004 22:42:44]

#

Minulla on tämmöinen hauskan näköinen koodipläjäys:

<?php

class DB
{

var $usr;
var $pwd;
var $db;
var $server;

var $query;

// FUNKTIO AVAA YHTEYDEN TIETOKANTAAN
function open($usr, $pwd, $db, $server)
{
$this->usr = $usr;
$this->pwd = $pwd;
$this->db = $db;
$this->server = $server;

$this->link = mysql_connect($this->server, $this->usr, $this->pwd);

if ( ! $this->link ) die("SQL server not OnLine");

mysql_select_db($this->db) or die ("Couldn't open database");

register_shutdown_function(array($this, 'close'));  // väitän vastoin järjestelmää, että vika on tässä
//register_shutdown_function($this->close);  // <= ei toimi
}

// FUNKTIO SUORITTAA KYSELYN TIETOKANNASSA
function query($query)
{
$this->query = $query;
$result = mysql_query($this->query, $this->link);
return $result;
}

// FUNKTIO SULKEE YHTEYDEN TIETOKANTAAN
function close()
{
mysql_close($this->link);  // <= järjestelmä väittää vian olevan tässä
}

}

?>

Ja kommentit koodissa kertookin kaiken. Missä siis vika kun ei itse keksi???

tsuriga [23.10.2004 23:41:42]

#

Entäs jos laitat: register_shutdown_function('$this->close'); Muistaakseni noissa, missä annetaan callback funktio, funktion nimi annetaan merkkijonona.

folio [24.10.2004 11:03:41]

#

Oleellisin eli virheilmoitus puuttuu. Kokeile kuitenkin:

register_shutdown_function(array(&$this, "close"));

Jokatapauksessa tuo sulkeminen tuohon tyyliin on aivan turhaa koska php-sulkee yhteyden automaattisesti skriptin suorittuksen päätyttyä.

Wizard [24.10.2004 11:26:22]

#

Hmm...jostain syystä tuo scripti lähti toimimaan mitään tekemättä...(?!?!)


Eikä tuo mitään haittaa vaikka yhteydet manuaalisesti sulkeekin.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta