Foutmelding

Status
Niet open voor verdere reacties.

Lsj

Gebruiker
Lid geworden
31 mrt 2008
Berichten
11
Bij het maken van onze website voor een schoolopdracht kregen wij problemen met het invoeren van nieuwe gegevens in tabellen in PHPMyAdmin.
Dit was de foutmelding:
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 '3527JG','Utrecht','0645454545')' at line 1

Dit is onze code:
PHP:
<?php
$voornaam = $_POST["Naam2"];
$achternaam = $_POST["Achternaam"];
$telefoonnummer = $_POST["Tel_nummer"];
$postcode = $_POST["Postcode"];
$adres = $_POST["Adres"];
$leerlingnummer = $_POST["Leerlingnummer"];
$huisnummer = $_POST["Huisnummer"];
$woonplaats = $_POST["Woonplaats"];
if (empty($Naam2))
{
  $opmerking = "<br />- U bent vergeten om de voornaam in te vullen!";
}
if (empty($achternaam))
{
  $opmerking = $opmerking . "<br />- U bent vergeten om de achternaam in te vullen!";
}
if (empty($postcode))
{
  $opmerking = $opmerking . "<br />- U bent vergeten om de postcode in te vullen!";
}
if (empty($adres))

{ $opmerking = $opmerking . "<br />- U bent vergeten om het adres in te vullen!";
}
if (empty($leerlingnummer))
{
  $opmerking = $opmerking . "<br />- U bent vergeten om het leerlingnummer in te vullen!";
}
if (empty($huisnummer))
{
  $opmerking = $opmerking . "<br />- U bent vergeten om het huisnummer in te vullen!";
}
if (empty($woonplaats))
{
  $opmerking = $opmerking . "<br />- U bent vergeten om de woonplaats in te vullen!";
}
else
{ 
$mysql = mysql_connect("localhost","leerling_lsj","45lp76") or die (mysql_error());
mysql_select_db(leerling_7lvs) or die ("Could not select database because ".mysql_error());
mysql_query("INSERT INTO Leerlingdata(Leerlingnummer, Naam, Achternaam, Adres, Huisnummer, Postcode, Woonplaats, Tel_nummer) VALUES ('$leerlingnummer','$voornaam','$achternaam','$adres','$huisnummer,'$postcode','$woonplaats','$telefoonnummer')",$mysql) or die (mysql_error());
mysql_close($mysql) or die ("Het verbreken van de verbinding is mislukt");
print("Door u ingevulde gegevens: <br><br>
Leerlingnummer: $leerlingnummer <br>
Naam, achternaam: $voornaam $achternaam <br>
Adres: $adres $huisnummer <br>
Postcode: $postcode <br>
Woonplaats: $woonplaats <br>
Telefoonnummer: $telefoonnummer ");
}
?>

Dit is de site.

Wij hebben geen idee wat de fout inhoudt, kan iemand ons helpen?
Bij voorbaat dank!!
 
Jullie zijn een single-quote vergeten na $huisnummer.
Daarnaast is het handiger om lange queries te verdelen over meerdere regels.

PHP:
mysql_query("INSERT INTO Leerlingdata(
               Leerlingnummer,
               Naam,
               Achternaam,
               Adres,
               Huisnummer,
               Postcode,
               Woonplaats,
               Tel_nummer
             ) VALUES (
               '$leerlingnummer',
               '$voornaam',
               '$achternaam',
               '$adres',
               '$huisnummer',
               '$postcode',
               '$woonplaats',
               '$telefoonnummer'
)",$mysql) or die (mysql_error());
 
Variabelen horen buiten quotes.

PHP:
$sQuery = "INSERT INTO test (bla) VALUES ('".$sBla."')";
 
Variabelen horen buiten quotes.

Is niet verplicht.

Ik ben het met je eens dat het duidelijkheid schept maar het is niet noodzakelijk :)
 
Ik zeg niet dat het moet, ik zeg dat het hoort. ;)
 
Klinkt dat niet als hetzelfde :rolleyes:

Iedereen programmeert op zijn eigen manier, laat ik het daar maar bij houden.

Eens afwachten of de TS nog reageert.
 
Ach, het feit dat je in goede script nooit variabelen binnen quotes tegenkomt zegt al genoeg. Hetzelfde geldt voor alle PHP-documentatie, etc. Vind niet dat het veel met 'manier van programmeren' te maken heeft.
 
Ik wilde nog even iets vragen, met betrekking tot de variabelen binnen of buiten quotes, is het namelijk niet zo, dat variabelen buiten quotes, je site kwetsbaarder maken voor SQL-injections?
 
Niet voor zover ik weet.

SQL injections heeft meer met slechte beveiliging van je code te maken dan met het wel of niet escapen van variabelen.
 
Oké, zo goed ben ik ook nog niet bij met mijn PHP...

Maar ik was laatst aan het zoeken naar een oplossing voor mijn CMS, waar ik een tekst in een database wilde droppen waar quotes ( ' ) in voorkwamen en toen kreeg ik een heel stuk te zien over SQL-injections.

Maar vergeet dan maar dat ik deze opmerking maakte...:eek:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan