update query fout
Ik heb meteen het hele scriptje gepost anders zou ik zodra gepost reactie krijgen dat hele script er niet op staat. Nou het betreft de update query die het echt niet doet. Heb reeds verschillende methoden gebruikt maar ik kom er niet uit. De post gegevens komen juist terrecht want ik krijg ze te zien als ik deze plaats in een echo.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
error_reporting(E_ALL);
require_once('../../Connections/conn_gezinsbond.php');
// Eerste validatie, controleren of de gegevens wel een post is en of de post gevuld is
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(!empty($_POST['elm1']) && !empty($_POST['categorie']) && !empty($_POST['contid']))
{
// Toegelaten html tags
$allowedTags ='<p><strong><em><u><h1><h2><h3><h4><h5><h6><img>';
$allowedTags.='<li><ol><ul><span><div><br><ins><del><a><td><tr><tt>';
$sContent = strip_tags(stripslashes($_POST['elm1']),$allowedTags);
// Hoe groot is de tekstwaarde in bytes
$sbytes = filesize('../../index.php') ;
// Alles ging goed dus voeren we het uit
$categorie = "$_POST[categorie]";
$contid = "$_POST[contid]";
$teksten = "$_POST[elm1]";
mysql_select_db('elbadesign_eindwerk') or die('Error, cannot select mysql database');
$sql = mysql_query("UPDATE gezinsbond_context SET
ContID='$contid',
categorie='$categorie',
teksten='$teksten',
bytesize='$sbytes'
WHERE
ContID='$contid' ");
mysql_query($sql) or die('Error, query failed');
$res = mysql_query($sql);
if ($res)
{
echo "<p class='ok'>Okeeej</p>";
echo"<head><meta http-equiv=\"refresh\" content=\"500;url=index.php\"></head>";
}
else
{
echo "<p class='error'>NI goed </p> "; echo $sbytes, $categorie , $contid, $teksten ;
echo"<head><meta http-equiv=\"refresh\" content=\"50000;url=index.php\"></head>";
}
}
else {
echo"De post was leeg.";
}
}
?>
error_reporting(E_ALL);
require_once('../../Connections/conn_gezinsbond.php');
// Eerste validatie, controleren of de gegevens wel een post is en of de post gevuld is
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(!empty($_POST['elm1']) && !empty($_POST['categorie']) && !empty($_POST['contid']))
{
// Toegelaten html tags
$allowedTags ='<p><strong><em><u><h1><h2><h3><h4><h5><h6><img>';
$allowedTags.='<li><ol><ul><span><div><br><ins><del><a><td><tr><tt>';
$sContent = strip_tags(stripslashes($_POST['elm1']),$allowedTags);
// Hoe groot is de tekstwaarde in bytes
$sbytes = filesize('../../index.php') ;
// Alles ging goed dus voeren we het uit
$categorie = "$_POST[categorie]";
$contid = "$_POST[contid]";
$teksten = "$_POST[elm1]";
mysql_select_db('elbadesign_eindwerk') or die('Error, cannot select mysql database');
$sql = mysql_query("UPDATE gezinsbond_context SET
ContID='$contid',
categorie='$categorie',
teksten='$teksten',
bytesize='$sbytes'
WHERE
ContID='$contid' ");
mysql_query($sql) or die('Error, query failed');
$res = mysql_query($sql);
if ($res)
{
echo "<p class='ok'>Okeeej</p>";
echo"<head><meta http-equiv=\"refresh\" content=\"500;url=index.php\"></head>";
}
else
{
echo "<p class='error'>NI goed </p> "; echo $sbytes, $categorie , $contid, $teksten ;
echo"<head><meta http-equiv=\"refresh\" content=\"50000;url=index.php\"></head>";
}
}
else {
echo"De post was leeg.";
}
}
?>
Wat voor error geeft mysql_error weer?
Error, query failed , dus ik kan me niet goed inbeelden wat er fout loopt in de update query.
doe is:
die('Error, query failed :'.mysql_error()); ipv. die('Error, query failed');
die('Error, query failed :'.mysql_error()); ipv. die('Error, query failed');
Heb ik gedaan zonder effect: voorbeeld staat op
http://www.elbadesign.be/gezinsbondzvl/cms/context/verwerken.php
http://www.elbadesign.be/gezinsbondzvl/cms/context/verwerken.php
Het is verstandiger om zulke foutmeldingen te maken:
mysql_query($query) or die (mysql_error(). 'in query: '.$query)
zo kan je je query beter bekijken
mysql_query($query) or die (mysql_error(). 'in query: '.$query)
zo kan je je query beter bekijken
@micheal
Voor het debug process is het handig, maar niet als je applicatie draait. Dan geef je een potentiele hacker teveel informatie.
@bart
mysql_error zou een fout moeten weergeven als hij mislukte.
Met mysql_affected_rows() kun je zien hoeveel rijen er zijn aangepast
Voor het debug process is het handig, maar niet als je applicatie draait. Dan geef je een potentiele hacker teveel informatie.
@bart
mysql_error zou een fout moeten weergeven als hij mislukte.
Met mysql_affected_rows() kun je zien hoeveel rijen er zijn aangepast
Eerst doe je dit:
en dan vervolgens dit:
Je stopt het resultaat van mysql_query dus in de var $sql. Daarna voer je mysql_query NOG een keer uit, met $sql als argument.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$sql = mysql_query("UPDATE gezinsbond_context SET
ContID='$contid',
categorie='$categorie',
teksten='$teksten',
bytesize='$sbytes'
WHERE
ContID='$contid' ");
?>
$sql = mysql_query("UPDATE gezinsbond_context SET
ContID='$contid',
categorie='$categorie',
teksten='$teksten',
bytesize='$sbytes'
WHERE
ContID='$contid' ");
?>
en dan vervolgens dit:
Je stopt het resultaat van mysql_query dus in de var $sql. Daarna voer je mysql_query NOG een keer uit, met $sql als argument.
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
@Jan
Dat is net het probleem ook geworden dat hij echter niets weergeeft van fouten en toch is die query fout ofwel .... De database ? de rij " teksten " heeft als type FULLTEXT . geeft dit ook een aanleiding tot fouten?
Dat is net het probleem ook geworden dat hij echter niets weergeeft van fouten en toch is die query fout ofwel .... De database ? de rij " teksten " heeft als type FULLTEXT . geeft dit ook een aanleiding tot fouten?
Het zou zo moeten:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
$sql = "
UPDATE
gezinsbond_context
SET
ContID = '" . $contid . "',
categorie = '" . $categorie . "',
teksten = '" . $teksten . "',
bytesize = '" . $sbytes . "'
WHERE
ContID = " . $contid;
if (mysql_query ($sql)) {
if (mysql_affected_rows () == 1) {
$msg = 'Tabel geupdate';
}
else {
$msg = 'Niets geupdate';
}
}
else {
$msg = mysql_errno () . ': ' . mysql_error ();
$msg .= '<br />';
$msg .= htmlentities ($sql);
}
echo $msg;
?>
$sql = "
UPDATE
gezinsbond_context
SET
ContID = '" . $contid . "',
categorie = '" . $categorie . "',
teksten = '" . $teksten . "',
bytesize = '" . $sbytes . "'
WHERE
ContID = " . $contid;
if (mysql_query ($sql)) {
if (mysql_affected_rows () == 1) {
$msg = 'Tabel geupdate';
}
else {
$msg = 'Niets geupdate';
}
}
else {
$msg = mysql_errno () . ': ' . mysql_error ();
$msg .= '<br />';
$msg .= htmlentities ($sql);
}
echo $msg;
?>
Edit:
Ik ga er in dit voorbeeld van uit dat je de variabelen in je UPDATE query van tevoren gecheckt hebt.
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
@Jan
Ik heb nu de code van jou voorbeeld geplaatst maar zonder resultaat. Ik zal eveneens ook even mee in de $msg de waarden zetten ter voorbeeld.
Ik heb nu de code van jou voorbeeld geplaatst maar zonder resultaat. Ik zal eveneens ook even mee in de $msg de waarden zetten ter voorbeeld.
probleem opgelost : ligt aan men database, kon geen tekst invoegen aangezien de tekst varchars bevat ipv gewone tekst.
Yet another problem solved
Topic closed.
Yet another problem solved
Topic closed.




