Не могу понять, почему не работает такой код: PHP: <?php $link = mysql_connect($conf->dbserver, $conf->dbuser, $conf->dbpass); class db { function sname() { $res=mysql_db_query($conf->dbname, "select var from ".$conf->prefix."_config where (name=fname)", $link); while ($row=mysql_fetch_array($res)) {$sname=$row['var'];} return $sname; } } ?> Ошибка: Помогите плиз, кто поймёт.
http://ru2.php.net/manual/en/language.variables.scope.php области видимости вкратце - function sname() - нефига не знает, ни о $link, ни о $conf->dbname.
опять же если такой код PHP: <?php class db { function sname($server,$user,$pass,$base,$table) { $server1=$conf->dbserver; //$user=$conf->dbuser; $table=$table."_config"; $link = mysql_connect($server1, $user, $pass); $res=mysql_db_query($base, "select * from $table where (name = 'fname')", $link); while ($row=mysql_fetch_array($res)) {$sname=$row['var'];} return $sname; } } ?> то $conf->dbserver; он получает, а $conf->dbuser отказывается, хотя описаны одинаково: PHP: <?php class f_conf { var $dbserver ='localhost'; var $dbname = 'forum'; var $dbuser ='root'; var $dbpass ='password'; var $dbprefix ='forum'; var $db = 'mysql'; } ?>
Решил, сделал всё проще: PHP: <?php class db { function sname() { global $dbserver,$dbuser,$dbpass,$dbname,$dbprefix;; $table=$dbprefix."_config"; $link = mysql_connect($dbserver, $dbuser, $dbpass); $res=mysql_db_query($dbname, "select * from $table where (name = 'fname')", $link); while ($row=mysql_fetch_array($res)) {$sname=$row['var'];} return $sname; } } ?>