Ik heb een db online gezet: database jdeboer, tabel filmarchief.
De webmaster heeft me alle rechten gegeven maar krijg nog steeds een melding:
Database jdeboer wordt uitgevoerd op localhost
Fout
SQL-query :
SHOW TABLE STATUS FROM `jdeboer`
MySQL retourneerde:
#1044 - Access denied for user: '@localhost' to database 'jdeboer'
De webmaster heeft zelfs de data-bestanden van mijn harde schijf overgenomen (mysql\data)
Zou ik iets in mijn php-scripts verkeerd hebben ingesteld?
ik gebruik $host, $user en $password.
gedeelte uit FAsearch.php:
<?php
...
$host = "localhost";
$user = "jdeboer";
$password = "(mijn wachtwoord)";
$db = mysql_connect($host, $user, $password) or die ("Could not connect to " . $host);
$dbname = "jdeboer";
$tablename = "filmarchief";
$query = "SELECT * FROM $tablename";
include('include\database.php');
...
?>
gedeelte uit include\database.php:
<?php
...
if (empty($dbname)) { $dbname = "mysql"; } // database naam
if (empty($host)) { $host = "localhost"; } // host naar MySQL
if (empty($user)) { $user = ""; } // gebruikersnaam van MySQL
if (empty($password)) { $password = ""; } // wachtwoord van MySQL
// user configuratie
if (empty($to)) { $to = "[email protected]"; } // jouw email adres
if (empty($subject)) { $subject = "database connectie mislukt"; } // onderwerp van de email
if (empty($from)) { $from = "From: Autobot <[email protected]>"; }
FAsearch.php: de variabelen van $user worden niet naar de database.php geexporteerd zo het lijkt. Hierdoor krijg je een lege gebruikersnaam (alles de standaardwaarden). Weet je zeker dat je die variabelen in FASEARCH.php moet stuffen? En moeten die variabelen niet als globalen in database.php gedefinieerd worden?
// variabelen initialiseren
if (empty($browser)) { $browser = $HTTP_USER_AGENT; }
if (empty($host)) { $host = "localhost"; }
if (empty($user)) { $user = "JdeBoer"; }
if (empty($password)) { $password = "(mijn wachtwoord)"; }
// connect to database
if (empty($db)) { $db = mysql_connect($host, $user, $password) or die ("Could not connect to " . $host); }
if (empty($dbname)) { $dbname = "jdeboer"; }
if (empty($tablename)) { $tablename = "filmarchief"; }
mysql_select_db("$dbname", $db) or die ("Could not find " . $dbname);
$query = "SELECT * FROM $tablename";
}
Het was ook mijn bedoeling om het allemaal in een include\database.php te zetten, zodat ik die voor alle db's kon gaan gebruiken en dan in het desbetreffende php-script de vriabelen $host, $user en $password e.d. door te geven.
Maar t werkt niet helemaal zoals ik t graag zou willen zien en wat volgens mij t overzichtelijkst werkt.
Ik heb in dit geval de database.php ertussenuit gehaald als include van t script wat hierboven beschreven staat.
Of je hem handig vind weet ik niet maar dit is mijn database.php (allemaal functies die ik handig vind, de originele heeft er nog meer )
<?
class database
{
# Database vars
var $user = "****";
var $pass = "****";
var $host = "localhost";
var $name = "****";
# 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 de database connectie maakt
function connect()
{
return mysql_select_db($this->name, mysql_connect($this->host, $this->user, $this->pass));
}
}
?>