Verbinding maken met MySql
Overigens zit er nog een ander probleem aan 'voornaam' vs 'VoorNaam'. Als het in MySQL niet uitmaakt, maakt het in php nog wel uit. Als je het namelijk gaat uitlezen met associatieve arrays, dan is $row['voornaam'] weer niet gelijk aan $row['VoorNaam']. Gebruik je gewoon altijd, maar dan ook altijd kleine letters heb je geen van deze problemen.
Ik heb in de query nu alleen nog maar kleine letters gebruikt en heb een foutcontrole ingebouwd.
Deze geeft de volgende melding;
"Please check your query and try again."
Maar ik kan checken wat ik wil ik kom er echt niet uit wat ik verkeerd doe.
Het ziet er nu als volgt uit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$con = mysqli_connect("localhost","root","",'oefening');
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"INSERT INTO persons (voornaam , achternaam , leeftijd)
VALUES ('Peter', 'Griffin','35')")
or die ("Please check your query and try again.");
mysqli_query($con,"INSERT INTO persons (voornaam, achternaam, leeftijd)
VALUES ('Glenn', 'Quagmire','33')")
or die ("Verander uw query en probeer het opnieuw.");
mysqli_close($con);
?>
$con = mysqli_connect("localhost","root","",'oefening');
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"INSERT INTO persons (voornaam , achternaam , leeftijd)
VALUES ('Peter', 'Griffin','35')")
or die ("Please check your query and try again.");
mysqli_query($con,"INSERT INTO persons (voornaam, achternaam, leeftijd)
VALUES ('Glenn', 'Quagmire','33')")
or die ("Verander uw query en probeer het opnieuw.");
mysqli_close($con);
?>
En wat zegt: mysqli_error($con)?
Toevoeging op 11/08/2014 13:40:54:
Sorry, ik ben echt nog een leek en weet niet of ik het ooit onder de knie krijg! Moet ik mysqli_error($con). Ergens invoegen?
Henk Woeltjes op 11/08/2014 13:27:58:
Ik heb in de query nu alleen nog maar kleine letters gebruikt
Heb je dat dan uiteraard ook in de database gedaan?
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 = mysqli_connect("localhost","root","",'oefening');
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
if(mysqli_query($con,"INSERT INTO persons (voornaam , achternaam , leeftijd)
VALUES ('Peter', 'Griffin','35')
")){
echo "De query is gelukt!";
} else {
echo "Please check your query and try again. The error is:" .mysqli_error($con);
}
mysqli_close($con);
?>
$con = mysqli_connect("localhost","root","",'oefening');
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
if(mysqli_query($con,"INSERT INTO persons (voornaam , achternaam , leeftijd)
VALUES ('Peter', 'Griffin','35')
")){
echo "De query is gelukt!";
} else {
echo "Please check your query and try again. The error is:" .mysqli_error($con);
}
mysqli_close($con);
?>
Ik heb de verandering aangebracht zoals je hebt aangegeven en krijg nu de volgende foutmelding:
Please check your query and try again. The error is:Unknown column 'voornaam' in 'field list'
Ik maak hieruit op dat de kolom 'voornaam' niet herkend wordt. Maar door dit PHP-script worden de kolommen 'voornaam', 'achternaam' en 'leeftijd' toch juist aangemaakt in de tabel 'persons'? of heb ik dat helemaal verkeerd begrepen?
Die moet je echt zelf aanmaken.
Gewijzigd op 11/08/2014 15:17:45 door - Ariën -
En dat doe je dus niet vanuit PHP maar rechtstreeks in MySQL Admin?
Met mysqli_query() kan je ook velden aanmaken, maar dan moet je het ALTER-commando van MySQL gebruiken. Dit is verder leuk voor een installer alleen.
Voor de goede orde: