Foutmelding: "kan niet lezen uit de database"

Status
Niet open voor verdere reacties.

maham

Gebruiker
Lid geworden
8 mei 2007
Berichten
47
Hallo,

Ben een beginner op het gebied van php en heb het boek "PHP applicatieontwikkeling" van Peter Kassenaar gekocht om verder te komen. Na dagenlang puzzelen en proberen roep ik hier nu de hulp in van jullie omdat ik een probleem heb.

Om te oefenen heb ik één van de eerste scripts overgetypt om gegevens in een database te stoppen en weer uit te lezen.
Bij het uitvoeren lijkt het script de database wel te kunnen openen, maar niet te kunnen schrijven naar en/of lezen uit de database.
Om te testen heb ik mbv Dreamweaver eenzelfde script gemaakt (zowel lezen als schrijven naar dezelfde database) en dan werkt het wel :confused: ...
Als ik de scripts naast elkaar leg zie ik wel (veel) verschillen, maar het lukt me niet om het probleem te ontdekken.

Het script (lezen) uit het boek begint als volgt:
PHP:
<html> 
<head> 
<title>YABG: Lees alle bijdragen</title> 
</head> 
<body> 
<h2>YABG: Alle bijdragen</h2> 
<?php 
    /** 
    *initialisatie databesevariabelen 
    */ 
    $host        = 'localhost'; 
    $gebruiker    = '****'; 
    $wachtwoord    = '*****'; 
    $database    = '******'; 
    $query        = 'SELECT * FROM yabg_inhoud'; 
    $result        = null; 
    $db        = null; 
    /** 
    *database openen 
    */ 
    if (!$db = mysql_connect($host, $gebruiker, $wachtwoord, $database)){ 
        echo 'Het openen van de database is mislukt.<br />'; 
        echo 'MySQL-error: ' . mysql_connect_error(); 
        exit; 
    } 
    /** 
    *openen geslaagd, alle bijdragen in een lus op het scherm zetten 
    */ 
    if (!$result = mysql_query($db, $query)){ 
        echo 'FOUT: kan niet lezen uit de database.<br />'; 
        echo 'MySQL-error: ' . mysql_error($db); 
        exit; 
    };
Kan iemand hier iets ontdekken dat het probleem zou kunnen veroorzaken?
Is er misschien iemand die het boek van Peter Kassenaar kent?
Alvast bedankt!

Maurice
 
Laatst bewerkt door een moderator:
PHP:
$host = 'localhost';
$gebruiker = '****';
$wachtwoord = '*****';
$database = '******';

Heb je wel de echte gegevens van de database ingevoerd? :)
 
Hoi Breezer,
Bedankt voor je reactie.
Ja, ik heb de juiste inliggegevens gebruikt. Dezelfde als in het Dreamweaver script. Dat werkt dus wel.
Het is mij een groot raadsel...
Zou het iets met de php-versie te maken kunnen hebben? De scripts in het boek zijn getest voor php5, de versie op de server is 4.3.9
 
Nee, dat lijkt mij in dit geval niet aan de orde.

Staat er verder geen specifieke mysql fout bij? Bijvoorbeeld:

PHP:
Table 'administratie.personeefl' doesn't exist

of

PHP:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '''eid = functie.func_id ORDER by pers_id asc' at line 1
 
Nee, helaas, de foutmeldingen verschijnen ook niet op het scherm.
De exacte foutmelding luidt:

YABG: Alle bijdragen
FOUT: kan niet lezen uit de database.
MySQL-error:

(precies zoals ik in het script heb aangegeven).
Maar het DW script werkt wel, de tabel 'yabg_inhoud' bestaat.
Wat me wel opvalt is dat in het DW script de volgende regel staat:

mysql_select_db($database_yabg, $yabg);

dat staat niet in het script uit het boek...
 
De fout zit in de aanroep bij "mysql_connect".

Volgens de API kan de database-variabele niet meegegeven worden in de aanroep.

Je zal dus inderdaad de functie "mysql_select_db()" moeten gebruiken.
 
aaajeetee,

Bedankt voor het meedenken.
Je antwoord is nog een beetje abracadabra voor mij (heb gekeken bij de API, maar daar word ik niet veel wijzer).
Hoe verwerk ik de functie mysql_select_db() nu in mijn code?
Hij moet hier ergens tussen?
PHP:
if (!$db = mysql_connect($host, $gebruiker, $wachtwoord, $database)){ 
        echo 'Het openen van de database is mislukt.<br />'; 
        echo 'MySQL-error: ' . mysql_connect_error(); 
        exit; 
    } 
    /** 
    *openen geslaagd, alle bijdragen in een lus op het scherm zetten 
    */ 
    if (!$result = mysql_query($db, $query)){ 
        echo 'FOUT: kan niet lezen uit de database.<br />'; 
        echo 'MySQL-error: ' . mysql_error($db); 
        exit; 
    };
Alvast bedankt.
Maurice
 
Laatst bewerkt door een moderator:
PHP:
$mysql_user = "username";
$mysql_password = "password";
$mysql_host = "localhost";
$mysql_db = "database";

$connect = @mysql_connect($mysql_host, $mysql_user, $mysql_password);
$select_db = @mysql_select_db($mysql_db);

if($connect == FALSE || $select_db == FALSE)
{

die("Kon geen verbinding maken met database");
}

$query = "SELECT * FROM tabel";

$result = mysql_query($query);

while($show = mysql_fetch_assoc($result))
{
echo $show['kolomnaam'];
}

Zo kan je het bijvoorbeeld aanpakken.
 
Laatst bewerkt:
Breezer,

Het werkt! Top!
Nu ga ik jouw code maar eens goed doornemen, want hier moet ik het fijne van weten.
Is het script dat in het boek staat dan fout?

Bedankt :thumb: !

Maurice
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan