update query fout
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.
die('Error, query failed :'.mysql_error()); ipv. die('Error, query failed');
mysql_query($query) or die (mysql_error(). 'in query: '.$query)
zo kan je je query beter bekijken
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
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
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?
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
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.
Yet another problem solved
Topic closed.