Wat is er fout in mijn mySQL query?
Code (php)
1
2
3
2
3
$register_query = "INSERT INTO users (id, username, password, first_name, last_name, email_adress, xfire_adress, msn_adress, skype_adress,
hobbys, html_skills, css_skills, php_skills, mysql_skills, c_skills, bat_skills, ip_adress, confirm_hash, is_activated, date_created)
VALUES ('', '$username', '$password', '$first_name', '', '$email', '', '', '', '', '', '', '', '', '', '', '', '$user_ip', '$hash', 0, NOW())";
hobbys, html_skills, css_skills, php_skills, mysql_skills, c_skills, bat_skills, ip_adress, confirm_hash, is_activated, date_created)
VALUES ('', '$username', '$password', '$first_name', '', '$email', '', '', '', '', '', '', '', '', '', '', '', '$user_ip', '$hash', 0, NOW())";
Dit is de database:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ID int(5) Nee Geen auto_increment Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
username varchar(15) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
password varchar(15) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
first_name varchar(20) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
last_name varchar(25) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
email_adress varchar(40) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
xfire_adress varchar(25) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
msn_adress varchar(40) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
skype_adress varchar(30) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
hobbys text latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
html_skills varchar(15) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
css_skills varchar(15) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
php_skills varchar(15) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
mysql_skills varchar(15) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
c_skills varchar(15) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
bat_skills varchar(15) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
ip_adress varchar(15) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
confirm_hash varchar(100) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
is_activated int(1) Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
date_created date Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
username varchar(15) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
password varchar(15) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
first_name varchar(20) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
last_name varchar(25) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
email_adress varchar(40) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
xfire_adress varchar(25) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
msn_adress varchar(40) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
skype_adress varchar(30) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
hobbys text latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
html_skills varchar(15) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
css_skills varchar(15) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
php_skills varchar(15) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
mysql_skills varchar(15) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
c_skills varchar(15) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
bat_skills varchar(15) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
ip_adress varchar(15) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
confirm_hash varchar(100) latin1_swedish_ci Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
is_activated int(1) Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
date_created date Nee Geen Bekijk unieke waarden Veranderen Verwijderen Primaire sleutel Unieke waarde Index Volledige tekst
Die kan je ook weg laten.. (Volgens mij)
Heb je phpmyadmin?
mysql_error is ook erg handig om te gebruiken, dat zie je wat er mis gaat
Ja, ik heb phpmyadmin.
En mysql_error, op kun je een voorbeeldje maken om hem te gebruiken?
Victor: Nee, dat kan niet :(
Helaas....
Moet alle velden invullen!
Victor Php op 15/07/2010 19:42:55:
Je hebt een heleboel waardes met niks erin.. ('')
Die kan je ook weg laten.. (Volgens mij)
Die kan je ook weg laten.. (Volgens mij)
Die kan je helemaal niet weglaten!
Joannis Orlandos op 15/07/2010 19:56:39:
Ik heb ook al mijn query ge-echo'd.
Ja, ik heb phpmyadmin.
En mysql_error, op kun je een voorbeeldje maken om hem te gebruiken?
Victor: Nee, dat kan niet :(
Helaas....
Moet alle velden invullen!
Ja, ik heb phpmyadmin.
En mysql_error, op kun je een voorbeeldje maken om hem te gebruiken?
Victor: Nee, dat kan niet :(
Helaas....
Moet alle velden invullen!
Je voert dus nooit een controle uit op je query?
Vb
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$query = mysql_query("SELECT * FROM x WHERE x = x");
if(!$query) {
// Fail
echo "MySQL Error: " . mysql_error();
}
else {
// Success
// Doe wat je wilt doen met je query
}
?>
$query = mysql_query("SELECT * FROM x WHERE x = x");
if(!$query) {
// Fail
echo "MySQL Error: " . mysql_error();
}
else {
// Success
// Doe wat je wilt doen met je query
}
?>
Gewijzigd op 15/07/2010 20:10:23 door Wouter De Schuyter
Alleen zonder mysql_error();
Het is gewoon een lapje tekst :P
Wel handig dat is die mysql_error(); gebruik...
ipv van die kan je ook trigger_error of je eigen gemaakte error-functie gebruiken.
Mijn vraag is nu.
Klopt de query?
Ik krijg de error:
Column count doesn't match value count at row 1
Op internet staat een voorbeeld over wat de fout inhoud...
Het antwoord, is dat ik het goed doe...
Joannis Orlandos op 16/07/2010 13:59:20:
Column count doesn't match value count at row 1
Dat houdt in dat het aantal kolommen waarin je iets in wilt voegen niet overeenkomt met het aantal waarden dat je opgeeft. Met andere woorden, het aantal velden in de INSERT INTO tabel (...) komt niet overeen met het aantal waarden in VALUES (...).
Ik vind het trouwens wel raar, want dat probleem had ik volgens mij al opgelost...
Hij schrijft de first_name niet op...
Graag niet bumpen; twee berichten van jezelf na elkaar binnen 24 uur plaatsen. Heb je een toevoeging aan je vorige bericht, gebruik dan het 'wijzigen' icoontje.[/modedit]
Gewijzigd op 16/07/2010 14:25:17 door Joren de Wit
Haal verder je variabelen buiten quotes, dat is ten eerste duidelijker en wil ten tweede ook nog wel eens problemen voorkomen.
Bedankt!
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
$username = strtolower($_POST['username']);
$username = trim($username);
$email = $_POST['email'];
$query = "SELECT ID FROM users WHERE username = '$username' AND email_adress = '$email'";
$query_result = mysql_query($query);
// CHECK IF USERNAME OR EMAIL ADRESS IS ALREADY IN USE
if($query_result && mysql_num_rows($query_result) > 0)
{
$username = trim($username);
$email = $_POST['email'];
$query = "SELECT ID FROM users WHERE username = '$username' AND email_adress = '$email'";
$query_result = mysql_query($query);
// CHECK IF USERNAME OR EMAIL ADRESS IS ALREADY IN USE
if($query_result && mysql_num_rows($query_result) > 0)
{
De bedoeling is dat hij een username of email adres ophaalt, en kijkt of hij al in gebruik is...
Hij zegt altijd dat er niks in gebruik is, ONDANKS dat hij wel 10 keer regegistreerd is!
Let verder op SQL injectie, dit scriptje is zo lek als een mandje. Beter doe je het zo:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$username = mysql_real_escape_string($_POST['username']);
$email = mysql_real_escape_string($_POST['email']);
$sql = "
SELECT id
FROM users
WHERE username = '".$username."'
AND email = '".$email."'
";
?>
$username = mysql_real_escape_string($_POST['username']);
$email = mysql_real_escape_string($_POST['email']);
$sql = "
SELECT id
FROM users
WHERE username = '".$username."'
AND email = '".$email."'
";
?>
maakt het dan wat uit of ik naar de volgende regel ga in mijn query?
Nee, maar voor het overzicht is het wel aan te raden.
Dan snap ik de fout in de query nogsteeds niet...
Enne...
Hoe zorg ik dat hij zoekt naar een van de 2?
Dus, eentje, OF met dezelfde username en email, OF alleen dezelfde username, OF alleen dezelfde email?
Gewijzigd op 19/07/2010 22:11:40 door Joannis Orlandos