Mysql connectie wilt niet werken
Ik heb gewoon een hele standaard database connectie gemaakt in php, alles heeft de juiste gegevens maar ik krijg maar "Verbinding met database mislukt" te zien.
Alle gegevens komen correct overeen met de gegevens in phpmyadmin.
Ik gebruik WAMP server
SQL versie: 5.5.16
PHP versie: 5.3.8
hier de connectie in php, ik bespaar jullie de rest van het script
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?PHP
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'wachtwoord';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
$dbname = 'databasenaam';
mysql_select_db($dbname);
?>
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'wachtwoord';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
$dbname = 'databasenaam';
mysql_select_db($dbname);
?>
en het laatste gedeelte:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?PHP
if (!mysql_query($sql,$conn))
{
echo 'Verbinding met database mislukt';
}
else
{
echo 'U bent succesvol aangemeld';
}
?>
if (!mysql_query($sql,$conn))
{
echo 'Verbinding met database mislukt';
}
else
{
echo 'U bent succesvol aangemeld';
}
?>
Gewijzigd op 18/05/2012 14:56:06 door Ruben kok
Dan zie je letterlijk wat er fout gaat.
In jouw geval is het overduidelijk.
$sql bestaat niet.
- SanThe - op 18/05/2012 14:58:08:
Bouw nette foutafhandeling in.
Dan zie je letterlijk wat er fout gaat.
In jouw geval is het overduidelijk.
$sql bestaat niet.
Dan zie je letterlijk wat er fout gaat.
In jouw geval is het overduidelijk.
$sql bestaat niet.
Ik heb de rest van de code bespaart en die $sql bestaat uiteraard wel gewoon
Code (php)
1
2
3
4
5
2
3
4
5
<?PHP
sql = "INSERT INTO user_data (voornaam, achternaam, straat_nu, postcode, woonplaats, gebruikersnaam, wachtwoord, email, geboortedatum)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[street_nu]','$_POST[zipcode]','$_POST[city]','$_POST[username]','$_POST[password]','$_POST[emailadress]','$_POST[birthdate]')";
?>
sql = "INSERT INTO user_data (voornaam, achternaam, straat_nu, postcode, woonplaats, gebruikersnaam, wachtwoord, email, geboortedatum)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[street_nu]','$_POST[zipcode]','$_POST[city]','$_POST[username]','$_POST[password]','$_POST[emailadress]','$_POST[birthdate]')";
?>
Haal variabelen uit quotes
Probeer mijn foutafhadeling eens puur om te kijken of je connectie fout gaat.
Dan 3 dingen over je query.
1) Escape alle gegevens met mysql_real_escape_string();
2) Je vergeet overal de '' in je $_POST, dus het moet zo $_POST['firstname']
3) Zet alle $_POST buiten de quotes.
Daar zal het foutgaan.
Marco PHPJunky op 18/05/2012 15:03:22:
Kijk eens naar Mysqli of PDO
mysql is leuk maar wel al erg verouderd...
Lees anders ook een dit topic:
Linkje
mysql is leuk maar wel al erg verouderd...
Lees anders ook een dit topic:
Linkje
het is een mysqli :)
Chris NVT op 18/05/2012 15:03:34:
@Ruben,
Probeer mijn foutafhadeling eens puur om te kijken of je connectie fout gaat.
Dan 3 dingen over je query.
1) Escape alle gegevens met mysql_real_escape_string();
2) Je vergeet overal de '' in je $_POST, dus het moet zo $_POST['firstname']
3) Zet alle $_POST buiten de quotes.
Daar zal het foutgaan.
Probeer mijn foutafhadeling eens puur om te kijken of je connectie fout gaat.
Dan 3 dingen over je query.
1) Escape alle gegevens met mysql_real_escape_string();
2) Je vergeet overal de '' in je $_POST, dus het moet zo $_POST['firstname']
3) Zet alle $_POST buiten de quotes.
Daar zal het foutgaan.
Ik ga nu even je foutafhandeling proberen en je punten even opnemen!
Chris NVT op 18/05/2012 15:11:08:
Ik heb nu dit:
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
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?PHP
$link = new mysqli('localhost', 'root', '', 'familiedocumenten');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = 'INSERT INTO user_data (voornaam, achternaam, straat_nu, postcode, woonplaats, gebruikersnaam, wachtwoord, email, geboortedatum)
VALUES
($_POST["firstname"],$_POST["lastname"],$_POST["street_nu"],$_POST["zipcode"],$_POST["city"],$_POST["username"],$_POST["password"],$_POST["emailadress"],$_POST["birthdate"])';
//SQL query uitvoeren
if (mysqli_multi_query($link, $query)) {
do {
/* store first result set */
if ($result = mysqli_store_result($link)) {
while ($row = mysqli_fetch_row($result)) {
printf("%s\n", $row[0]);
}
mysqli_free_result($result);
}
/* print divider */
if (mysqli_more_results($link)) {
printf("-----------------\n");
}
} while (mysqli_next_result($link));
}
/* close connection */
mysqli_close($link);
?>
$link = new mysqli('localhost', 'root', '', 'familiedocumenten');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = 'INSERT INTO user_data (voornaam, achternaam, straat_nu, postcode, woonplaats, gebruikersnaam, wachtwoord, email, geboortedatum)
VALUES
($_POST["firstname"],$_POST["lastname"],$_POST["street_nu"],$_POST["zipcode"],$_POST["city"],$_POST["username"],$_POST["password"],$_POST["emailadress"],$_POST["birthdate"])';
//SQL query uitvoeren
if (mysqli_multi_query($link, $query)) {
do {
/* store first result set */
if ($result = mysqli_store_result($link)) {
while ($row = mysqli_fetch_row($result)) {
printf("%s\n", $row[0]);
}
mysqli_free_result($result);
}
/* print divider */
if (mysqli_more_results($link)) {
printf("-----------------\n");
}
} while (mysqli_next_result($link));
}
/* close connection */
mysqli_close($link);
?>
Nu krijg ik een lege pagina en voert ie niks in de database in :S
Gewijzigd op 18/05/2012 15:53:50 door php knipper
Tevens is jou code precies hetzelfde als die van de TS alleen vind ik die van de TS stukken netter doordat hij niet die vreemde if statements dingen gebruikt.
@ruben, kijk eens wat er gezegd is. Op MySQLi na merk ik er niks van dat je iets doet met de reacties hierboven.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$query = "INSERT INTO user_data
(
voornaam,
achternaam,
....
)
VALUES
(
'" . mysql_real_escape_string($_POST['firstname']) . "',
'" . mysql_real_escape_string($_POST['lastname'] . '",
....
)";
?>
$query = "INSERT INTO user_data
(
voornaam,
achternaam,
....
)
VALUES
(
'" . mysql_real_escape_string($_POST['firstname']) . "',
'" . mysql_real_escape_string($_POST['lastname'] . '",
....
)";
?>
Sorry, zelf even omzetten naar mysqli.
Gewijzigd op 18/05/2012 16:01:24 door - SanThe -
Php knipper op 18/05/2012 15:47:21:
probeer deze verbinding eens
Wat krijg je dan? als hij leeg is dan is de verbinding gelukt
probeer dan eens je sql
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
###database gegevens
$server = "localhost"; // de host van de database
$gebruiker = ""; // gebruiker van database
$wachtwoord = ""; // wachtwoord van database
$db = ""; // naam database
###verbinding maken met database
if(!$connectie = mysql_connect($server,$gebruiker,$wachtwoord))
{
echo 'Fout bij het verbinden met de gebruiker.';
} else {
if(!mysql_select_db($db,$connectie)) {
echo 'Fout bij het verbinden met de database.';
}
}
?>
###database gegevens
$server = "localhost"; // de host van de database
$gebruiker = ""; // gebruiker van database
$wachtwoord = ""; // wachtwoord van database
$db = ""; // naam database
###verbinding maken met database
if(!$connectie = mysql_connect($server,$gebruiker,$wachtwoord))
{
echo 'Fout bij het verbinden met de gebruiker.';
} else {
if(!mysql_select_db($db,$connectie)) {
echo 'Fout bij het verbinden met de database.';
}
}
?>
Wat krijg je dan? als hij leeg is dan is de verbinding gelukt
probeer dan eens je sql
Met die code alleen krijg ik de lege pagina, dat klopt dus. Maar als ik de sql query erbij doe krijg ik weer: "verbinding met database mislukt" en als ik de quotes vand e query van buiten naar binnenzet krijg ik weer de T_SYNTAX error
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
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?PHP
###database gegevens
$server = "localhost"; // de host van de database
$gebruiker = "root"; // gebruiker van database
$wachtwoord = ""; // wachtwoord van database
$db = "familiedocumenten"; // naam database
###verbinding maken met database
if(!$connectie = mysql_connect($server,$gebruiker,$wachtwoord))
{
echo 'Fout bij het verbinden met de gebruiker.';
} else {
if(!mysql_select_db($db,$connectie)) {
echo 'Fout bij het verbinden met de database.';
}
}
$sql = "INSERT INTO user_data (voornaam, achternaam, straat_nu, postcode, woonplaats, gebruikersnaam, wachtwoord, email, geboortedatum)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[street_nu]','$_POST[zipcode]','$_POST[city]','$_POST[username]','$_POST[password]','$_POST[emailadress]','$_POST[birthdate]')";
if (!mysql_query($sql))
{
echo 'Geen database gevonden';
}
else
{
echo 'U bent succesvol aangemeld';
}
?>
###database gegevens
$server = "localhost"; // de host van de database
$gebruiker = "root"; // gebruiker van database
$wachtwoord = ""; // wachtwoord van database
$db = "familiedocumenten"; // naam database
###verbinding maken met database
if(!$connectie = mysql_connect($server,$gebruiker,$wachtwoord))
{
echo 'Fout bij het verbinden met de gebruiker.';
} else {
if(!mysql_select_db($db,$connectie)) {
echo 'Fout bij het verbinden met de database.';
}
}
$sql = "INSERT INTO user_data (voornaam, achternaam, straat_nu, postcode, woonplaats, gebruikersnaam, wachtwoord, email, geboortedatum)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[street_nu]','$_POST[zipcode]','$_POST[city]','$_POST[username]','$_POST[password]','$_POST[emailadress]','$_POST[birthdate]')";
if (!mysql_query($sql))
{
echo 'Geen database gevonden';
}
else
{
echo 'U bent succesvol aangemeld';
}
?>
Tevens komt het waarschijnlijk ook omdat je op regel 22 de foutmelding 'Geen Database gevonden' hebt i.p.v. 'query werkt niet'.
Je krijgt dus de foutmelding omdat je query niet werkt en dat komt door het geen santhe, chris en ik al hebben uitgelegd...
Wouter J op 18/05/2012 15:58:38:
Leuk dat je "verbinding met de database mislukt" krijgt. Die staat namelijk nergens in je script :)
Tevens komt het waarschijnlijk ook omdat je op regel 22 de foutmelding 'Geen Database gevonden' hebt i.p.v. 'query werkt niet'.
Je krijgt dus de foutmelding omdat je query niet werkt en dat komt door het geen santhe, chris en ik al hebben uitgelegd...
Tevens komt het waarschijnlijk ook omdat je op regel 22 de foutmelding 'Geen Database gevonden' hebt i.p.v. 'query werkt niet'.
Je krijgt dus de foutmelding omdat je query niet werkt en dat komt door het geen santhe, chris en ik al hebben uitgelegd...
Als ik dat doe dan krijg ik een syntax error, maar heb nu dit:
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
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?PHP
###database gegevens
$server = "localhost"; // de host van de database
$gebruiker = "root"; // gebruiker van database
$wachtwoord = ""; // wachtwoord van database
$db = "familiedocumenten"; // naam database
###verbinding maken met database
if(!$connectie = mysql_connect($server,$gebruiker,$wachtwoord))
{
echo 'Fout bij het verbinden met de gebruiker.';
} else {
if(!mysql_select_db($db,$connectie)) {
echo 'Fout bij het verbinden met de database.';
}
}
$sql = "INSERT INTO user_data
(
voornaam,
achternaam,
)
VALUES
(
'" . mysql_real_escape_string($_POST['firstname']) . "',
'" . mysql_real_escape_string($_POST['lastname']) . "',
)";
if (!mysql_query($sql))
{
echo 'Kan query niet uitvoeren';
}
else
{
echo 'U bent succesvol aangemeld';
}
?>
###database gegevens
$server = "localhost"; // de host van de database
$gebruiker = "root"; // gebruiker van database
$wachtwoord = ""; // wachtwoord van database
$db = "familiedocumenten"; // naam database
###verbinding maken met database
if(!$connectie = mysql_connect($server,$gebruiker,$wachtwoord))
{
echo 'Fout bij het verbinden met de gebruiker.';
} else {
if(!mysql_select_db($db,$connectie)) {
echo 'Fout bij het verbinden met de database.';
}
}
$sql = "INSERT INTO user_data
(
voornaam,
achternaam,
)
VALUES
(
'" . mysql_real_escape_string($_POST['firstname']) . "',
'" . mysql_real_escape_string($_POST['lastname']) . "',
)";
if (!mysql_query($sql))
{
echo 'Kan query niet uitvoeren';
}
else
{
echo 'U bent succesvol aangemeld';
}
?>
en dan krijg ik de 'Kan query niet uitvoeren' error.
Maar dit is echt vreselijk raar want dit heb ik nog nooit eerder gehad dat ie zo raar deed, normaal doet ie het gewoon fijn op de manier hoe ik het doe :S
Quote:
normaal doet ie het gewoon fijn op de manier hoe ik het doe :S
Dat kan dus echt niet...
Tevens 'ik krijg een error' welke error krijg je dan?
(
voornaam,
achternaam,
)
VALUES
(
'" . mysql_real_escape_string($_POST['firstname']) . "',
'" . mysql_real_escape_string($_POST['lastname']) . "',
)";
bij achternaam moet geen , vanachter en dat is ook zo bij de values geen , achter lastname
Php knipper op 18/05/2012 16:07:35:
$sql = "INSERT INTO user_data
(
voornaam,
achternaam,
)
VALUES
(
'" . mysql_real_escape_string($_POST['firstname']) . "',
'" . mysql_real_escape_string($_POST['lastname']) . "',
)";
bij achternaam moet geen , vanachter en dat is ook zo bij de values geen , achter lastname
(
voornaam,
achternaam,
)
VALUES
(
'" . mysql_real_escape_string($_POST['firstname']) . "',
'" . mysql_real_escape_string($_POST['lastname']) . "',
)";
bij achternaam moet geen , vanachter en dat is ook zo bij de values geen , achter lastname
held, held. Hij doet :D
Ik wil graag iedereen bedanken voor zijn hulp, ook al raakte ik zelf het overzicht kwijt na een tijdje.
Nogmaals, bedankt :D