hallo

ik heb een insert query gemaakt. alleen krijg ik hierbij de volgende foutmelding

"if(!empty($_POST))
{
$query = "INSERT INTO messages
SET(
msg_id = '',
msg_date = CURDATE(),
msg_time = CURTIME(),
msg_title = '". $_POST['msg_title']. "',
msg_type = '".$bericht_type."',
msg_text = '". escape($msg_text). "',
msg_url = '". $_POST['msg_url']. "',
msg_naam = '". $_POST['msg_naam']. "',
msg_land = '". $_POST['msg_land']. "',
msg_niveau = '". $_POST['msg_niveau']. "'
);
";


$result = mysql_query($query) or die(mysql_error());
header("location: messages.php");
}

"
kan iemand mij helpen met het juist noteren van de code?
if(!empty($_POST))
{
$query = "INSERT INTO messages
SET(
msg_id = '',
msg_date = CURDATE(),
msg_time = CURTIME(),
msg_title = '". $_POST['msg_title']. "',
msg_type = '".$bericht_type."',
msg_text = '". escape($msg_text). "',
msg_url = '". $_POST['msg_url']. "',
msg_naam = '". $_POST['msg_naam']. "',
msg_land = '". $_POST['msg_land']. "',
msg_niveau = '". $_POST['msg_niveau']. "'
);
";


$result = mysql_query($query) or die(mysql_error());
header("location: messages.php");
}
Gaan we weer: Je maakt wederom dezelfde fout met de query );"; is niet goed! Verder kom het aantal waardes in je query niet overeen met het aantal kolommen in je tabel, gok ik zo.

Ga eens gestructureerd debuggen, echo de query eens om te zien wat je nu naar de database verstuurd, voer de query eens uit in phpmyadmin, etc., etc. Er zijn honderden mogelijkheden om te debuggen, maar je MOET het gestructureerd doen.

Het valt mij nu ook op dat je zowel dubbele als enkele quotes gebruikt om de sleutels in je array: $_POST["msg_title"] en $_POST['msg_url']. Het kan op zich geen kwaad, maar geeft wel aan dat je code 1 grote bende is. Op deze manier maak je het jezelf wel heel erg lastig. Maar goed, dat kan een keuze zijn.
Oke bedankt voor de tip. ik heb nu dit en het werkt.
deze code is verder toch wel netjes?

if(!empty($_POST))
{
$query = "INSERT INTO messages
SET
msg_id = '',
msg_date = CURDATE(),
msg_time = CURTIME(),
msg_title = '". $_POST['msg_title']. "',
msg_type = '".$bericht_type."',
msg_text = '". escape($msg_text). "',
msg_url = '". $_POST['msg_url']. "',
msg_naam = '". $_POST['msg_naam']. "',
msg_land = '". $_POST['msg_land']. "',
msg_niveau = '". $_POST['msg_niveau']. "'

";
$result = mysql_query($query) or die(mysql_error());
header("location: messages.php");

if(!$result){ // query is mislukt
echo 'Mislukt: '.mysql_error().'<br />';
echo 'met query: '.$query;
die(); // beetje bot, kan beter
}
Frank, ik geloof dat het nu de 4e keer is dat ik het je vertel :P
Een query sluit je af met ;
Dus );"; is net zo goed als )";
Alleen is het niet verplicht als je maar 1 query uitvoert.
Helaas kan je in mysql_query() niet meerdere query's stoppen.

Edit:
@net-marker
Nee, kijk naar Jan zijn POST:
INSERT INTO VALUES
Dus niet!
INSERT INTO SET
Nee, is niet netjes. De foutafhandeling komt letterlijk als mosterd na de maaltijd.
<?php
// eerste deel van je code t/m de query en dan:

result = mysql_query($query);

if(!$result){ // query is mislukt
echo 'Mislukt: '.mysql_error().'<br />';
echo 'met query: '.$query;
die(); // beetje bot, kan beter
}
else {
header("location: messages.php");
}
?>

Reageren