<?php
$DBUSER = "username";
$DBPASS = "pass";
$DBNAME = "dbname";
$DBSERVER= "localhost";

class myDB {

var $myConnection;
var $myRecordset;
var $row;

function myDB() {
GLOBALS $DBUSER, $DBPASS, $DBSERVER, $DBNAME;

$this->myConnection = mysql_connect($DBSERVER, $DBUSER, $DBPASS) or die("DB ERROR" . mysql_error());
mysql_select_db($DBNAME, $this->myConnection) or die("Huh?" . mysql_error());
}

function getRecords(strSQL) {
$this->myRecordset = mysql_query(strSQL, this->myConnection);
}

function getRow() {
$this->row = mysql_fetch_row($this->recordset);
}

function dbclose() {
mysql_free_result($this->myRecordset);
mysql_close($this->myConnection);
}
}



$bla = new myDB();

?>
________________________________________

result = Huh?Access denied for user: '@localhost' to database 'dbname'

Het lijkt er dus op dat de username ineens niet meer wordt meegegeven????
<?

$DBUSER = "username";
$DBPASS = "pass";
$DBNAME = "dbname";

?>

Bij jou in je echte script staat toch niet ook "username", "pass" en "dbname" he?
Hahahahaha, nee uiteraard niet.... Is een voorbeeldje...
<?php

GLOBALS $DBUSER, BPASS, DBSERVER, $BNAME;

?>

BPASS moet volgens mij $DBPASS zijn en DBSERVER mist een $?
En tis $GLOBALS['varname'] je hoeft ze niet eerst als global te zetten ...
Ah, sorry, die missende $ e.d. is een tikfoutje...
Die $GLOBALS['varname'] is een handige tip!!!! bedankt.

Heb de tikfoutjes even aangepast...

maar ziet iemand een reden waarom het script died op mysql_select_db ????
Er zitten nogal wat 'rare' dingen in je script.
Je kan kijke offut aan de database ligt, probeer eens een ander script, en wil je perse een class, probeer dan deze eens :
<?php
# Filename : database.php
# Author : Mitch Vroege
# Projectname : nvt
# Projectversion : nvt
# Releasedate : nvt

class Database
{
# Database vars
var $user = "User";
var $pass = "Pass";
var $host = "localhost";
var $name = "DBname";

# Functie die mysql_num_rows teruggeeft
function num_rows($sql)
{
$this->connect();
$res = mysql_query($sql);
$aantal = mysql_num_rows($res);
mysql_close();

return $aantal;
}

# Functie de mysql_fetch_array teruggeeft
function get_array($sql)
{
$this->connect();
$res = mysql_query($sql);
while($data = mysql_fetch_array($res))
$row[] = $data;

mysql_close();

return $row;
}

# Zelfde als hierboven maar dan 1 row
function get_single($sql)
{
$this->connect();
$res = mysql_query($sql);
$data = mysql_fetch_array($res);
mysql_close();

return $data;
}

# Functie die een normale query runt
function execute($sql)
{
$this->connect();
$res = mysql_query($sql);
mysql_close();

return $res;
}

# Functie die de database connectie maakt
function connect()
{
return mysql_select_db($this->name, mysql_connect($this->host, $this->user, $this->pass));
}
}
?>
Zou je willen uitleggen wat voor rare dingen? Het was m.i. toch heel simpel... (Het is idd nu even niet compleet, maar hij klapt er toch al uit bij de constructor.)


Er klopt een hoop niet, maar daar heb ik nu geen tijd voor.
Deze regel heb je dus niets aan, die werkt niet:
GLOBALS $DBUSER, $DBPASS, $DBSERVER, $DBNAME;
Want daardoor komt die error ...

unction getRecords(strSQL) {
Mss een $ voor strSQL?

$bla = new myDB();
Een class is GEEN functie, als je niet weet hoe je een class hoort te gebruiken doe het dan niet, je maakt het jezelf onnodig moeilijk.
Sorry, kom uit de JavaHoek... vandaar de ()
Vergeet even die globals.....

Maar even voor de duidelijkheid, zal ik het stukje script opnieuw maken, zonder extra toeters en bellen, want het hele point is hier gemist:

<?php
class DBASE {
// var om de mysql_link in vast te houden
var $dbConnection

//constructor
function DBASE() {

//connecten naar de database
$this->myConnection = mysql_connect('localhost','username','pass') or die ("DB Connect failed");

//juiste database selecteren
mysql_select_db('dbname', $this->myConnection) or die (mysql_error());
}

}
?>

Als ik nu een DBASE object instantieer, klapt het eruit met de melding:

Access denied for user: '@localhost' to database 'dbname'

Terwijl ik dan zou verwachten dat ik de melding zou krijgen waarin staat:
Access denied for user: 'username@localhost' to database 'dbname'


Waar is mijn username gebleven....????

$connection = mysql_connect($this->DBHOST, $this->DBUSER, $this->DPPWD);

Dan moet je wel je inloggegevens voor MySQL ook binnen de klasse definieren. Dus:

var $DBHOST = 'localhost';
var $DBUSER = 'user';
var $DBPWD = 'pass';
var $DBNAME = 'dbname';

Reageren