Toon posts:

[PHP&MySQL] Beginnersvraag database connecten.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met het volgende probleem, ik probeer een connectie naar een database te maken met het volgende script:
code:
1
2
3
4
5
6
<?php
  $db = mysql_connect("localhost");

  mysql_select_db("project", $db)
    or die ("FOUT openen database mislukt");
?>


Maar, hij geeft uiteraard de fout. Ik heb de database in de data dir van MySQL staan, en als ik de test database aanvraag doet hij het wel.

"SRV Server:
Document Contains no data"

Dit krijg ik dan dus. En ik snap dit even niet, gezien ze beiden in de zelfde directory staan en ik de code verder niet verander.
Weet iemand een oplossing?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 08:05

Janoz

Moderator Devschuur®

!litemod

1. Mysql is een applicatie. Een database in mysql is misschien op de harde schijf wel een bestandje, maar om deze te gebruiken moet je niet met het bestand werken, maar met de server verbinden. Of het script in dezelfde dir staat heeft dus helemaal niks met het wel of niet werken te maken. Sowieso vind ik een opmerking als 'ik heb de database in de data dir staan' heel erg vreemd.
2. mysql_connect verwacht meerdere parameters.
3. De foutmelding is helemaal niet gerelateerd aan het door jou geposte script en doet vermoeden dat je server configuratie niet op orde is.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Janoz schreef op 20 oktober 2004 @ 14:51:
1. Mysql is een applicatie. Een database in mysql is misschien op de harde schijf wel een bestandje, maar om deze te gebruiken moet je niet met het bestand werken, maar met de server verbinden. Of het script in dezelfde dir staat heeft dus helemaal niks met het wel of niet werken te maken. Sowieso vind ik een opmerking als 'ik heb de database in de data dir staan' heel erg vreemd.
Eerst, dan je voor het snelle antwoord.
Met het database in de databsedir staan hebben bedoel ik dat ik mijn databasegegevens, MYD MYI en frm bestanden in de c:\mysql\data directory heb staan.
2. mysql_connect verwacht meerdere parameters.
Username en password bedoel je? Ok, ik had ergens gelezen dat deze soms niet nodig waren, ik zal ze er terug bij zetten.
3. De foutmelding is helemaal niet gerelateerd aan het door jou geposte script en doet vermoeden dat je server configuratie niet op orde is.
Welke foutmelding bedoel je? srv server document contains no data? Ok, ik dacht dat dit gewoon een bericht was dat hij hem wel zag, maar dat er niets in stond.

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 14:21

ripexx

bibs

Maak van je code eens:

PHP:
1
2
3
4
5
6
// Connect to database server

$db = mysql_connect("localhost", "Username", "password") or die ("Error: ".mysql_error());

// Select database
mysql_select_db("project", $db) or die ("FOUT openen database mislukt: ".mysql_error());

Kijk ook eens geod naar de opmerkingen op de site van PHP bij deze functies. Verder kan je wel een die() doen maar dan is het wel handig dat je de error ook laat zien, dan weet je in ieder geval wat er aan de hand is. ;)

buit is binnen sukkel


Verwijderd

Zit er bij de Windows-versie van MySQL een client programma ? Zo ja, probeer dan es of je van je eigen bak connecten kan. Een andere methode is MyODBC installeren, een ODBC koppeling te maken en te kijken of je met MS-Access connecten kan. Dat geeft net iets meer debug-info dan een eigen progje.

Configureer direct de toegangsrechten (dicht). Met een slecht geconfigureerde MySQL-server staat je systeem zo goed als helemaal open.

Verwijderd

Topicstarter
ripexx schreef op 20 oktober 2004 @ 15:05:
Maak van je code eens:

PHP:
1
2
3
4
5
6
// Connect to database server

$db = mysql_connect("localhost", "Username", "password") or die ("Error: ".mysql_error());

// Select database
mysql_select_db("project", $db) or die ("FOUT openen database mislukt: ".mysql_error());

Kijk ook eens geod naar de opmerkingen op de site van PHP bij deze functies. Verder kan je wel een die() doen maar dan is het wel handig dat je de error ook laat zien, dan weet je in ieder geval wat er aan de hand is. ;)
Goed, ik heb het allemaal ingesteld, alleen krijg ik nogsteeds de zelfde fout, srv server contains no data.
Username heb ik root, password heb ik niets ingevuld, ik heb geen password(is niet belangrijk om de gegevens te beveiligen met een password).

EDIT: Kan het zijn dat mijn editprogramma die melding geeft en niet de phpcode zelf?
Als ik dit typ:(bij regel 9)
PHP:
1
2
3
4
5
6
7
8
9
10
<?
// Connect to database server

$db = mysql_connect("localhost", "root", "") or die ("Error: ".mysql_error());

// Select database
mysql_select_db("project", $db) or die ("FOUT openen database mislukt: ".mysql_error());

echo ('hello world')
?>


Krijg ik namelijk wel gewoon hello world te zien.

[ Voor 45% gewijzigd door Verwijderd op 20-10-2004 15:23 ]


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 14:21

ripexx

bibs

Verwijderd schreef op 20 oktober 2004 @ 15:17:
[...]
EDIT: Kan het zijn dat mijn editprogramma die melding geeft en niet de phpcode zelf?
Als ik dit typ:(bij regel 9)
Waarmee test jij je code dan mee? Ik neem aan toch een webserver met een php extensie (IIS of Apache) zijn de twee meest voorkomende webservers voor dit doel. Als je de code test met een interpeter in je editor dan kan het heel goed zijn dat het absoluut niet werkt. Dus waar test je mee en hoe?

buit is binnen sukkel


Verwijderd

Topicstarter
ripexx schreef op 20 oktober 2004 @ 15:25:
[...]

Waarmee test jij je code dan mee? Ik neem aan toch een webserver met een php extensie (IIS of Apache) zijn de twee meest voorkomende webservers voor dit doel. Als je de code test met een interpeter in je editor dan kan het heel goed zijn dat het absoluut niet werkt. Dus waar test je mee en hoe?
Dit heeft me aan het denken gezet. Ik typ de code in PHPed, en voer het via dat programma uit. Hello world laat hij dus gewoon zien. Maar ik heb ook apache geinstalleerd.
Ik kijken of apache nog als server op is gestart, en dat was zo. Maar als ik http:\\localhost intyp in mijn browser krijg ik forbidden you do not have permission...
Wat mij niet al te positief lijkt, ben aan het kijken waar het aan kan liggen.(ik blijf met de gedachte "Dar deed hij de vorige keer niet..." zitten, maar dat is eigenlijk neit mogelijk).

Verwijderd

in phpEd heb je toch een sneltoets of tab om de externe browser op te roepen? pas dan wordt het script uitgevoerd via apache/php. phped kan namelijk ook gewoon rechtsreeks het phpscript uitvoeren. je apache configuratie staat trouwens volledig los van mysql/php, je kan mysql volledig onafhankelijk bedienen/laten functioneren.
voor je forbidden zal je je documentroot en directory in httpd.conf van apache correct moeten instellen. en om php te laten interpreteren via de browser moet je nog meer instellingen aanpassen.

Verwijderd

Topicstarter
Maar 127.0.0.1/phpinfo.php krijg ik wel weer te zien. Evenals mijn hello world scrptje.

Verwijderd

en http://localhost/phpinfo.php niet? dan is er iets grondig mis met de firewall of de hosts files in windows/drivers/etc als deze niet gewijzigd is bevat deze slechts 1 entry:
127.0.0.1 localhost
(maw localhost verwijst naar je lokale pc-ip-adres)

Verwijderd

Topicstarter
Verwijderd schreef op 20 oktober 2004 @ 16:16:
en http://localhost/phpinfo.php niet? dan is er iets grondig mis met de firewall of de hosts files in windows/drivers/etc als deze niet gewijzigd is bevat deze slechts 1 entry:
127.0.0.1 localhost
(maw localhost verwijst naar je lokale pc-ip-adres)
Ja dat doet hij wel, sorry.

EDITJE:

Goed, als ik in mijn browser dit draai http://localhost/dbconnect.php

met deze code:

PHP:
1
2
3
4
5
6
7
8
9
10
<?
// Connect to database server

$db = mysql_connect("localhost", "root", "") or die ("Error: ".mysql_error());

// Select database
mysql_select_db("project", $db) or die ("FOUT openen database mislukt: ".mysql_error());

echo ('hello world')
?>


Krijg ik dus alleen hello world te zien, betekent dit dat hij de bovenste dingen goed uitvoert en dus alleen hello world laat zien?

[ Voor 40% gewijzigd door Verwijderd op 20-10-2004 16:28 ]


  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 10-11-2025

OkkE

CSS influencer :+

Ja, dan zit het goed. Voor de volledigheid zou je nog eventjes je $db kunnen echo-en, als je daar iets te zien krijgt is het goed. Maar, ik zou je wel aanraden na de echo een puntcomma te zetten. :)

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Verwijderd

Topicstarter
*veegt zweet van hoofd*
Mooi, kom ik toch nog ergens, dank jullie zeer voor de geboden hulp. :)
Pagina: 1