Hallo allemaal ik ben nieuw in php en mysql en ik rommel wat aan.
Ik ben nu een registratie formulier aan het maken maar me query die naar de DB moet schrijven krijgt de volgende error:
"Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\Game\includes\register.php on line 141"

Dit slaat dus op mijn query en deze is:

$DB->debug("INSERT INTO `characters` (username, race, gender, age, description) VALUES ($_POST['char_usename'], $_POST['char_race'], $_POST['char_gender'], $_POST['char_age'], $_POST['char_desc'])");

$DB->debug("INSERT INTO `game_users` (username, password, mail) VALUES ($_POST[username], $_POST[pass_2], $_POST[mail_2])");

als iemand me kan helpen ben ik hier super blij mee. Wat ik ongeveer er van snap is dat hij denkt dat er nog gegevens voor de post char_name staan en die zijn niet ingevuld.

Alvast bedankt,
Frits

<?php
mysql_query("insert into " . $table . "(field1,field2) VALUES ('" . $val1 . "','" .$val2 ."'");
?>


[edit]
[ignore]
[code] tags bijgevoegd
[/ignore]
[/edit]
Ik zou beginnen met de backticks `` er uit te halen en de values netjes tussen 'deze' aanhalingstekens te zetten...

EDIT: Sorry precies op hetzelfde moment hetzelfde.. ;)
Nog een tip: schrijf je query's netjes uit, met indenting en dergelijke. Dat debugt gemakkelijker.
Even een voorbeeldje:

INSERT INTO
  tabelnaam (
    kolom1,
    kolom2
  )
VALUES (
  'waarde 1',
  'waarde 2'
)

Ben je nu ergens iets vergeten, dan zie je dat vrij snel.

Tip: Zet je SQL eerst in een variabele en laat deze variabele uitvoeren door de database-functie/classe. Dan kun je de SQL nog eens echoen.

En let goed op, jouw code is zéér gevoelig voor SQL-injection!
wat is SQL-injection en wat kan ik er aan doen?
SQL-injection is het fenomeen waarbij kwaadwillige gebruikers via een lek in je site eigen SQL codes kunnen runnen op je DB

google : sql-injection + php


<?php
mysql_real_escape_string();
?>
Oke bedankt voor de uitleg ik zal er nog meer over lezen dat lijkt me erg nuttig.

ik heb een beetje gerommeld zoals jullie uitleg met me query alle quotes erbij gezet en me functie debug werkt nu dus zal ik even laten zien wat er fout is.


Query error in query: INSERT INTO 'characters' ( username, race, gender, age, description) VALUES ('', 'Elf', 'radiobutton', '112', 'testtetstetststwet') --> 
You have an error in your SQL syntax; check the manual that corresponds to 
your MySQL server version for the right syntax to use near ''characters' ( username, race, gender, age, description) ' at line 1


en dit is de query nu:


$DB->debug("INSERT INTO 'characters' (
			username, 
			race, 
			gender, 
			age, 
			description) 
			VALUES 
			('" . $_POST[char_usename] . "',
			'" . $_POST[char_race] . "',
			'" . $_POST[char_gender] . "',
			'" . $_POST[char_age] . "',
			'" . $_POST[char_desc] . "')");	
			
			$DB->debug("INSERT INTO 'game_users' (
			username, 
			password, 
			mail) 
			VALUES 
			(" . $_POST[username] . "',
			'" . $_POST[pass_2] . "',
			'" . $_POST[mail_2] . ")");

sorry voor alle code
[ignore]

<?phph
//je code
?>

[/ignore]


<?php
   //je code
?>


Gebruik dus int vervolg de code tag om code te posten ;)


[edit]
Bas zijn UBB class doet wat raar....
[/edit]
'characters' is een tabelnaam en geen string. Dit mag dus niet tussen quotes of andere zooi komen te staan.

$_POST[char_usename] is fout, dit moet zijn $_POST['char_usename'] met quotes.
oke bedankt dit is ook gefixt nu maar de error blijft toch hetzelfde ik vind het maar raar en als ik er naar kijk:


VALUES ('', 'Elf', 


begint het verkeerd.

Reageren