fout in de query insert
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");
}
Vind je het heel erg als ik geen foutmelding zie staan?
Neem een goede editor, dan zie je snel genoeg dat $query niet correct wordt afgesloten. );"; is wat er op de laatste 2 regels staat. Dit moet zijn )";
De melding was ik even vergeten. Maar hij is er nog wel :-)
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 '( msg_id = '', msg_date = CURDATE(), msg_time = CURT' at line 2
enig idee??
Zelf gebruik ik nooit SET i.c.m. INSERT INTO, maar mag je wel haakjes () gebruiken? Lijkt mij eigenlijk van wel, maar dat is wel het punt waar het mis gaat. Haal ze even weg en laat even weten of het is gelukt.
oke ik krijg geen foutmelding meer. maar er wordt ook niks in mijn db geplaast
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 ="blablabla";
$result = mysql_query($query);
if(!$result){ // query is mislukt
echo 'Mislukt: '.mysql_query().'<br />';
echo 'met query: '.$query;
die(); // beetje bot, kan beter
}
// rest van je code
?>
$query ="blablabla";
$result = mysql_query($query);
if(!$result){ // query is mislukt
echo 'Mislukt: '.mysql_query().'<br />';
echo 'met query: '.$query;
die(); // beetje bot, kan beter
}
// rest van je code
?>
Dat was even een snel voorbeeldje om wat aan foutafhandeling te doen.
ik had bij de echo mysql_query(). er uit gelaten omdat deze de foutmelding
Warning: Wrong parameter count for mysql_query() in /usr/home/n1087/domains/ubee-ht.nl/public_html/SBM/test/cms/new_message.php on line 43
gaf
Maar even een vraagje van mijn kant, de onzinquery blablabla heb je toch wel vervangen door jouw eigen query???
ik heb ook dit gebprobeerd
if(!empty($_POST)){
$query = "INSERT INTO messages
VALUES(
'',
CURDATE(),
CURTIME(),
'". $_POST["msg_title"]."',
'". $_POST["msg_type"]. "',
'". escape($msg_text). "',
'". $_POST['msg_url']. "',
'". $_POST['msg_naam']. "',
'". $_POST['msg_land']. "',
'". $_POST['msg_niveau']. "'
);";
$result = mysql_query($query) or die(mysql_error());
header("location: messages.php");
}
maar dan krijg ik de melding
Column count doesn't match value count at row 1
INSERT INTO messages
(veld1, veld2)
VALUES
('waarde1', 'waarde2')
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.
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
}
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
Gewijzigd op 01/01/1970 01:00:00 door Willem Jan Z
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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");
}
?>
// 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");
}
?>