Daten aus einer Funktion in eine andere übergeben

C

chofer02

Hi,
ich bin grade dabei mir ne kleine SiteEngine zu basteln... scheitere aber derzeit an folgendem Problem:

Ich schaffe es nicht die Daten die ich in einer Funktion erstelle, an eine andere zu übergeben. Hier ist der Code dazu:

config.inc.php
PHP:
...

class config_sql {
var $dbhost;
var $dbuser;
var $dbpass;
var $dbname; 

function config_sql()
{
$this->dbhost="localhost";
$this->dbuser="root";
$this->dbpass="";
$this->dbname="db1"; 
}}

...
index.php
PHP:
...

include('sql.inc.php');

$sql = new sql($config_sql->dbhost,$config_sql->dbuser,$config_sql->dbpass);
$sql->_select_db($config_sql->dbname);

...
sql.inc.php
PHP:
...

class sql
{
var $qcount;

function sql($config_sql->dbhost, $config_sql->dbuser, $config_sql->dbpass)
{
$this->qcount=0;

$db=mysql_connect($dbhost, $dbuser, $dbpass);
if($db){
    return $db;
} else {
    die("Database offline!<br>");
}}
function _select_db($config_sql->dbname){ 
return mysql_select_db($dbname);
}
function _query($query){
$this->qcount++;
return mysql_query($query);
}}

...
natürlich hab ich schon bei google gesucht, bin aber nicht fündig geworden. Hoffe ihr könnt mir helfen.

mfg
Christoph
 
Arbeite mal in der Funktionsdefinition mit einfachen Variablen:
PHP:
function sql($dbhost, $dbuser, $dbpass)
{

}
Übrigens: ein vorangesetzter Unterstrich wird eigentlich nur bei privaten, also nur klassenintern aufrufbaren Funktionen verwendet.
 
ne ändert sich auch nichts...

Fehlermeldung:

Warning: mysql_connect(): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /home/.sites/67/site686/web/showroom/maturaprojekt/inc/sql.php on line 11
Database offline!

das is die Zeile:

PHP:
$db=mysql_connect($dbhost, $dbuser, $dbpass);
 
Mit der Fehlermeldung solltest du dich mal an deinen Anbieter wenden. Ich glaube nicht, dass du da selbst was machen kannst.
 
doch, ich habs gerade probiert wenn ich die Daten per Hand eingeben also "serveradresse", "username", "pwd" dann gehts... und wenn ich versuch die Variablen auszulesen, bekomme ich keinen Wert =/... ich vermute mal dass da noch kein Wert übergeben wird - denn der Zugriff auf den MySQL Server funktioniert.
 
ne ich glaub eher nicht =/...

ich weiß ist jetzt ne ganz blöde frage, aber wie mach ich das... hab bisher noch nicht mit klassen und funktionen (zumindest nicht mit selbstgeschriebenen) gearbeitet...
 
Durch das $foo = new bar() instanzierst du die Klasse „bar“ und speicherst das erzeugte Objekt der Klasse in der Variable „foo“.
 
ne daran ists gelegen... habs zwar bei sql gemacht, aber bei config vergessen, danke!
 
Mir fällt gerade ein, dass du auch ohne Instanzierung an die Werte kommst. Probier mal Folgendes:
PHP:
$sql = new sql(config_sql::dbhost,config_sql::dbuser,config_sql::dbpass);
$sql->_select_db(config_sql::dbname);
 
Zurück