Door
Gert Molemans
op 01-06-2016 09:53
gewijzigd op 01-06-2016 09:54
1.678 views
Hallo Allemaal
Via een form in mijn PHP website zou ik de gegevens willen wegschrijven in mijn database maar ik krijg telkens een foutmelding.
namelijk
Error: INSERT INTO tb_ticket (school, lokaal, urgentie, datum, leerkracht, toestel, soortprob, beschijving, berichtnaar, onderwerp, it) VALUES (Atheneum Maasland - Campus Dilsen, 209, hoog, Wed Jun 01, Tilly, 5, computer_probleem, jfsldfds, Gert Molemans, test, Gert Molemans)
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'Maasland - Campus Dilsen, 209, hoog, Wed Jun 01, Tilly, 5, computer_probleem, j' at line 1
lokaal: 209
Bedankt voor de snelle reactie.
Nu krijg ik nog een andere fout
Notice: Undefined index: txttoestel in C:\xampp\htdocs\helpdesk\ticketopslaan.php on line 12
Error: INSERT INTO tb_ticket (school, lokaal, urgentie, datum, leerkracht, toestel, soortprob, beschijving, berichtnaar, onderwerp, it) VALUES ('Atheneum Maasland - Campus Dilsen', 209, hoog, Wed Jun 01, 'Tilly', , computer_probleem, jfsldfds, 'Gert Molemans', test, 'Gert Molemans')
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'Jun 01, 'Tilly', , computer_probleem, jfsldfds, 'Gert Molemans', test, 'Gert Mo' at line 1
lokaal: 209
soort probleem: computer_probleem
toestel:
Notice: Undefined index: txttoestel in C:\xampp\htdocs\helpdesk\ticketopslaan.php on line 24
onderwerp: test
$_POST['txttoestel'] zal niet bestaan.
Je hebt nog steeds tekst in de query zonder (enkele) quotes.
Data uit een formulier is gevaarkijk.
Altijd userinput beveiligen.
Wat @Ramon hierboven doet lijkt mij ook verstandig uit oogpunt van leesbaarheid: schrijf je query over meerdere regels uit.
Deze hoef je trouwens niet eerst in een aparte variabele op te slaan, maar kan rechtstreeks in je query, bijvoorbeeld als volgt:
<?php
$conn->query(
"INSERT INTO table (
a, b, c, d
) VALUES (
'".$conn->real_escape_string($_POST['a'])."',
'".$conn->real_escape_string($_POST['b'])."',
'".$conn->real_escape_string($_POST['c'])."',
'".$conn->real_escape_string($_POST['d'])."'
)"
);
?>
En als je 3x real_escape_string() hebt uitgetypt heb je hier waarschijnlijk ook genoeg van en schrijf je een klein wrappertje voor MySQLi om hier sneller mee te werken.
En als je 3x real_escape_string() hebt uitgetypt heb je hier waarschijnlijk ook genoeg van en schrijf je een klein wrappertje voor MySQLi om hier sneller mee te werken.