Krijg MySQL maar niet aan de praat

Status
Niet open voor verdere reacties.

Uturn

Gebruiker
Lid geworden
7 apr 2009
Berichten
100
Hoi, ik ben geheel nieuw in php en MySQL (en dat is ook gelijk de oorzaak van het probleem:confused:).

Ik heb een tijd geleden WAMP geïnstalleerd. Na hulp op dit forum is het me gelukt om simpele php scriptjes te doen werken. Voor zover ik me kan herinneren heb ik nooit een gebruikersnaam of wachtwoord ingevoerd bij de installatie van WAMP. Ik ben erin geslaagd een kleine test database aan te maken in MySQL ('mynewdatabase') met enkele tabellen. Hoe kan ik nu met php in die database komen?
Beter nog: aangezien ik MySQL echt niet prettig vind om mee te werken, ik schrijf liever scripts, hoe kan ik met php een database maken en er iets mee doen?

Wanneer ik onderstaand script gebruik (dit script is gebaseerd op W3-school):

PHP:
<?php
 $con = mysql_connect("localhost","","");
 if (!$con)
   {
   die('Could not connect: ' . mysql_error());
   }
 
if (mysql_query("CREATE DATABASE my_db",$con))
   {
   echo "Database created";
   }
 else
   {
   echo "Error creating database: " . mysql_error();
   }
 
mysql_close($con);
?>
Ik zet dit script dan in de file 'index.php' welke ik opstart via localhost (WAMP) en krijg dan de melding:

Error creating database: Access denied for user ''@'localhost' to database 'my_db'

Wanneer ik hetzelfde doe met een simpel php scriptje (zoals echo "hallo") dan werkt dit wel, dus ik krijg wel connectie met de WAMP-server. Maar niet met MySQL.

Ik geef zo toch de opdracht gewoon een database te maken? Waarom lukt dit dan niet?
Kan iemand mij vertellen waar ik de fout moet zoeken, want ik ben er al veel tijd aan kwijt geraakt...

Many many thanks!!
 
Ik denk dat je de verkeerde combinatie van pass/username gebruikt. Dit is bij default niet "" "" maar username: "root" password= "" (zonder aanhalingstekens)
 
Bij usbwebserver staat op de phpmyadmin pagina de default instellingen.

Kijk daar eens.
Als je geen link hebt gewoon http://localhost:port/phpmyadmin
Dan moet je zelf nog ff je port invoeren

Of je kan ff op Google zoeken wat het default password is van jou wamp
 
Beter nog: aangezien ik MySQL echt niet prettig vind om mee te werken, ik schrijf liever scripts, hoe kan ik met php een database maken en er iets mee doen?

Dat snap ik niet. MySQL is een compleet database-management systeem en niet bepaald de moeilijkste.
Jij bent een beginneling en je wilt zelf een database gaan bouwen omdat MySQL te moeilijk is?

Ik zou me eerst maar eens wat verdiepen in MySQL
Je hebt geen idee waar je het over hebt.
 
Ik denk dat je de verkeerde combinatie van pass/username gebruikt. Dit is bij default niet "" "" maar username: "root" password= "" (zonder aanhalingstekens)

Inderdaad, wanneer ik ("localhost", "root") gebruik, dus zonder password krijg ik de melding - database created. Thanks.
 
Dat snap ik niet. MySQL is een compleet database-management systeem en niet bepaald de moeilijkste.
Jij bent een beginneling en je wilt zelf een database gaan bouwen omdat MySQL te moeilijk is?

Ik zou me eerst maar eens wat verdiepen in MySQL
Je hebt geen idee waar je het over hebt.

Klopt! Daarom kom ik ook hier :p
Waar heb ik gezegd dat MySQL te moeilijk is? Het zal vast ook niet moeilijk zijn, maar daar kom ik pas achter wanneer ik het aan de praat krijg. En nergens vind ik een complete opstart uitleg, altijd mist er een essentieel stuk. Dus database creatie t/m gebruik in een webpagina. Als jij een goede handleiding weet: be my guest. Want als MySQL 'compleet' zou zijn, zit er een uitgebreide handleiding bij, en die heb ik nog niet aangetroffen. Ik ben er al een week elke avond zonder vooruitgang mee bezig en dan raak je erg gefrustreerd. Ik heb dus al over MySQL gelezen, maar krijg het dus gewoon niet opgestart. Het heeft ook weinig zin om bijvoorbeeld eerst een heel boek over een programma te lezen en dan pas te beginnen. Je moet dat van het begin af aan bijhouden. En dit begin is nu net het probleem....:(
Mijn voorkeur gaat uit naar scripts ipv een programma, net zoals veel mensen hier liever zelf code intypen dan een programma gebruiken om een html pagina te bouwen.
Je kunt een persoonlijke voorkeur ook niet bekritiseren... als ik liever scripts gebruik, dan maakt het niet uit of het alternatieve programma makkelijk of moeilijk is.

Het is ook niet zo dat ik een hele webwinkel wil bouwen, maar gewoon vrije kleine databases via een webpagina inlezen.
 
Voorbeeld

Dit is nu zo'n voorbeeld: Na de gelukte creatie van de database volgens bovenstaand script, maar dan zonder password, toch even verder gegaan. Ik wil nu dat de database wordt aangemaakt en het script uitbreiden zodat er een tabel inkomt, en die dan vervolgens gaan invullen. Op 3 verschillende tuturials (waaronder W3) kom ik dus tegen:

Code:
CREATE TABLE Persons
 (
 P_Id int,
 LastName varchar(255),
 FirstName varchar(255),
 Address varchar(255),
 City varchar(255)
 )

Nu, wat ik ook doe: gewoon in het script hierboven zetten, aan een variabele toekennen en dan via mysql_query(), het werkt gewoon niet!!:evil:
In geen van de tutorials staat waar je dit script moet plaatsen om de tabel dan vervolgens te kunnen gaan gebruiken.
 
En wat als je eens
Int(5),
Gebruikt dus met de lengte er achter.

Dit staat inderdaad niet in de tutorial op w3schools. (Ik ga het morgen even testen:-) )

Maar het staat wel ergens anders.
Alles wat je tussen de haakjes zet met mysql_query is SQL.
Dit is een aparte taal, en heeft dus een eigen tutorial(deze is veel uitgebreider dan het stukje dat bij php er bij staat)
Op de pagina van het CREATE TABLE statement staat een link naar de datatypes, als je daar naar onder scrollt kom je dit tegen bij mysql:
Int(size)

Als je nog meer vragen hebt moet je ze blijven stellen!
 
Laatst bewerkt:
Ik heb de code van w3schools even geprobeerd en die werkt gewoon hoor:

PHP:
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

// Create database
if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Database created";
  }
else
  {
  echo "Error creating database: " . mysql_error();
  }

// Create table
mysql_select_db("my_db", $con);
$sql = "CREATE TABLE Persons
(
FirstName varchar(15),
LastName varchar(15),
Age int
)";

// Execute query
mysql_query($sql,$con);

mysql_close($con);
?>

Hij geeft de integer dan gewoon lengte 11.
Op regel 9 &19 moet je wel naar dezelfde database verwijzen.
Verder kan je bij iedere query een foutcontrole doen:
PHP:
$query = "CREATE DATABASE my_db";
if (mysql_query($query))
  {
  echo "Query succesvol";
  }
else
  {
  echo "Query error: " . mysql_error();
  }
 
Laatst bewerkt:
Thanks man:thumb:
Klopt, dit script werkt. Ik denk dat het verschil 'm zat in mysql_select_db, die functie had ik niet gebruikt. Dat dit essentieel is zie ik nu ook onder het script bij W3 staan.:o
Ben alweer een stuk verder...
Er zullen vast meer vragen opkomen:p
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan