Database aanmaken in MySQL via EasyPHP
Ik gebruik het programma EasyPHP om mijn php programma's op internet (127.0.0.1) te laten zien.
Echo, variable aanmaken etc. werkt allemaal prima.
Nu wil ik MySQL verbinden met EasyPHP om een database op internet te laten zien.
Op wikibooks staat de code van mysql_connect(...), die goed werkt (ik krijg geen foutmelding).
Op wikibooks staat ook de code voor een database aan te maken, namelijk:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$Verbinding = mysql_connect(...);
$Result = mysql_query("CREATE DATABASE ".mysql_real_escape_string($_CONFIG["Database"]), $Verbinding);
if($Result == false)
{
trigger_error("Kan database niet aanmaken.");
}
$Result = mysql_query("CREATE DATABASE ".mysql_real_escape_string($_CONFIG["Database"]), $Verbinding);
if($Result == false)
{
trigger_error("Kan database niet aanmaken.");
}
Dit geeft mij de error code van Kan database niet aanmaken.
(Natuurlijk heb ik mysql_connect(...) wel ingevult waar ... staat.)
Als ik rechts klik op het icoontje van EasyPHP, en kijk op het menu Configuratie, en PhpMyAdmin aanklik wordt ik doorverzonden naar 127.0.0.1/...
Daar krijg ik ook een foutmelding, namelijk "Object niet gevonden".
Wat doe ik fout?
Bedankt
~Jeroen
Gewijzigd op 11/07/2012 15:25:38 door Bas IJzelendoorn
Als jou bovenstaande code je hele code is controleer je niet of de verbinding is gelukt, en met mysql_error() kan je nagaan wat er fout gaat. Bv CREATE DATABASE kan mislukken vanwege onvoldoende rechten.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$_CONFIG["Username"] = 'root';
$_CONFIG["Password"] = '';
$_CONFIG["Host"] = 'localhost';
$_CONFIG["Database"] = 'gastenboek';
$Verbinding = mysql_connect($_CONFIG["Host"], $_CONFIG["Username"], $_CONFIG["Password"]);
if($Verbinding == false) // Verbinding is mislukt!
{
trigger_error("Kan geen verbinding maken met de database");
}
$Result = mysql_query("CREATE DATABASE ".mysql_real_escape_string($_CONFIG["Database"]), $Verbinding);
if($Result == false)
{
trigger_error("Kan database niet aanmaken.");
}
else
{
echo ("Database is succesvol aangemaakt.");
}
mysql_close($Verbinding);
?>
$_CONFIG["Username"] = 'root';
$_CONFIG["Password"] = '';
$_CONFIG["Host"] = 'localhost';
$_CONFIG["Database"] = 'gastenboek';
$Verbinding = mysql_connect($_CONFIG["Host"], $_CONFIG["Username"], $_CONFIG["Password"]);
if($Verbinding == false) // Verbinding is mislukt!
{
trigger_error("Kan geen verbinding maken met de database");
}
$Result = mysql_query("CREATE DATABASE ".mysql_real_escape_string($_CONFIG["Database"]), $Verbinding);
if($Result == false)
{
trigger_error("Kan database niet aanmaken.");
}
else
{
echo ("Database is succesvol aangemaakt.");
}
mysql_close($Verbinding);
?>
En als ik naar localhost ga krijg ik hetzelfde scherm als bij 127.0.0.1
(localhost betekent je interne ip adres, het interne ip adres is bij iedereen 1127.0.0.1)
~Jeroen
Als je iets met een daadwerkelijke false (of true) wilt vergelijken, gebruik dan === in plaats van == .
Probeer eens een ander voorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE gastenboek",$con))
{
echo "Database created";
}
else
{
echo "Error creating database: " . mysql_error();
}
mysql_close($con);
?>
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE gastenboek",$con))
{
echo "Database created";
}
else
{
echo "Error creating database: " . mysql_error();
}
mysql_close($con);
?>
Gewijzigd op 11/07/2012 15:26:51 door Aad B
{
...
}
Geeft dezelfde error.
~Jeroen
Toevoeging op 11/07/2012 15:29:50:
Ik krijg nu een andere error, maar ik denk dat deze goed nieuws is:
Error creating database: Can't create database 'gastenboek'; database
Is dit goed of wat moet ik aanpassen?
~Jeroen
Gewijzigd op 11/07/2012 15:53:13 door Aad B
Bij sommige servers kan je enken via phpMyadmin een database aanmaken; niet via php (voor zover ik weet).
Gewijzigd op 11/07/2012 16:07:40 door Kris Peeters
Kris Peeters op 11/07/2012 16:07:20:
Dat is een rechtenkwestie, inderdaad.
Bij sommige servers kan je enken via phpMyadmin een database aanmaken; niet via php (voor zover ik weet).
Bij sommige servers kan je enken via phpMyadmin een database aanmaken; niet via php (voor zover ik weet).
Dat lijkt mij niet logisch.
PhpMyAdmin is ook gewoon PHP.
- SanThe - op 11/07/2012 16:09:37:
Dat lijkt mij niet logisch.
PhpMyAdmin is ook gewoon PHP.
PhpMyAdmin is ook gewoon PHP.
Maar het kan wel zijn dat PMA met een andere database-gebruiker (met andere rechten) werkt.
Dat klopt, maar die is dan te vinden.
EasyPHP is WAMP, daar zit toch ook PhpMyAdmin in? Misschien kan TS dat beter gebruiken in plaats van veel energie te steken in om het met losse php statements voor elkaar te krijgen.
Ik heb alles van mij verwijderd, en die van jouw erin gekopieerd.
Toen kreeg ik die melding.
Wat bedoelen jullie met 'rechtenkwestie'? Hoe moet ik dat oplossen?
~Jeroen
Toevoeging op 11/07/2012 16:26:32:
Edit: Ja, PhpMyAdmin zit in EasyPHP.
Ik kan PhpMyAdmin benaderen via het icoontje van EasyPHP.
Dan binnen PhpMyAdmin de database aanmaken en de tabellen. De rechtenkwestie: Er staat me iets van bij dat root zonder password niet via php scripts kan, dus root zonder password wordt op client/server zoals dat heet niet geaccepteerd, alleen op commandline level op de MySQL server kan dat. PhPMyAdmin zal wel een user met voldoende rechten hebben tegen MySQL.
Elwin - Fratsloos op 11/07/2012 16:15:10:
Maar het kan wel zijn dat PMA met een andere database-gebruiker (met andere rechten) werkt.
- SanThe - op 11/07/2012 16:09:37:
Dat lijkt mij niet logisch.
PhpMyAdmin is ook gewoon PHP.
PhpMyAdmin is ook gewoon PHP.
Maar het kan wel zijn dat PMA met een andere database-gebruiker (met andere rechten) werkt.
Inderdaad maar dat hoeft niet persee een andere gebruiker te zijn, je kan nl. voor een gebruiker verschillende IP's opgeven, en daarop de rechten uitdelen.
Ger van Steenderen op 11/07/2012 16:33:35:
Inderdaad maar dat hoeft niet persee een andere gebruiker te zijn, je kan nl. voor een gebruiker verschillende IP's opgeven, en daarop de rechten uitdelen.
Elwin - Fratsloos op 11/07/2012 16:15:10:
Maar het kan wel zijn dat PMA met een andere database-gebruiker (met andere rechten) werkt.
- SanThe - op 11/07/2012 16:09:37:
Dat lijkt mij niet logisch.
PhpMyAdmin is ook gewoon PHP.
PhpMyAdmin is ook gewoon PHP.
Maar het kan wel zijn dat PMA met een andere database-gebruiker (met andere rechten) werkt.
Inderdaad maar dat hoeft niet persee een andere gebruiker te zijn, je kan nl. voor een gebruiker verschillende IP's opgeven, en daarop de rechten uitdelen.
@Ger: zo ingewikkeld zit WAMP niet in elkaar, dat is slechts een 127.0.0.1 applicatie