Rij uit database aanpassen waar id * is
Ik heb dus een script waarmee ik data uit een database wil aanpassen. Ik heb alleen geen idéé hoe ik het aan moet pakken. Met INSERT INTO gaat het niet lukken heb ik al gemerkt.. Iemand anders ideeën?
Zie de vele tutorials hierover. UPDATE.
http://www.bol.com/nl/p/boeken/php-mysql-voor-dummies/1001004006043390/index.html?Referrer=ADVNLGOO0020085203bnu
Misschien is dit iets voor je.
Boek kost aar €27,95 en je kunt binnen een maand de hele basis van SQL leren.
Hier vragen stellen kan natuurlijk ook. Maar aangezien je geen flauw idee hebt hoe PHP werkt is het misschien een goeie tip.
Edit: Sorry had PHP ingevult niet slim haha
Misschien is dit iets voor je.
Boek kost aar €27,95 en je kunt binnen een maand de hele basis van SQL leren.
Hier vragen stellen kan natuurlijk ook. Maar aangezien je geen flauw idee hebt hoe PHP werkt is het misschien een goeie tip.
Edit: Sorry had PHP ingevult niet slim haha
Gewijzigd op 01/01/1970 01:00:00 door Tim Kampherbeek
Tim Kampherbeek schreef op 10.06.2009 12:36:
Wie zegt dat hij geen idee heeft hoe PHP werkt? Dit is puur SQL en heeft dus niets met PHP te maken...Hier vragen stellen kan natuurlijk ook. Maar aangezien je geen flauw idee hebt hoe PHP werkt is het misschien een goeie tip.
SQL beginnershandleiding
Zie deze handleiding en kijk dan zoals SanThe al zegt eens naar de UPDATE queries.
Heb nu dit stukje code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
include('header.php');
$inhoud = $_POST['inhoud'];
$id = $_GET['id'];
$sql = "UPDATE paginas SET inhoud = ".$inhoud.", id = ".$id." WHERE id = ". $_GET['id'];
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_affected_rows() == 0)
{
echo 'Geen records gewijzigd. <br />Query: '.$sql;
}
else
{
echo 'Update was succesvol! De query:'.$sql;
}
include('footer.php');
?>
include('header.php');
$inhoud = $_POST['inhoud'];
$id = $_GET['id'];
$sql = "UPDATE paginas SET inhoud = ".$inhoud.", id = ".$id." WHERE id = ". $_GET['id'];
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_affected_rows() == 0)
{
echo 'Geen records gewijzigd. <br />Query: '.$sql;
}
else
{
echo 'Update was succesvol! De query:'.$sql;
}
include('footer.php');
?>
In header.php zit het config gedeelte. Krijg alleen deze error:
Notice: 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 '
test
, id = 2 WHERE id = 2' at line 1
In query: UPDATE paginas SET inhoud =
test
, id = 2 WHERE id = 2 in /var/www/html/verwerkscript.php on line 10
Ik zelf kan niet vinden wat nou de fout is..
Gewijzigd op 01/01/1970 01:00:00 door luc
Strings zetten we single quotes omheen.
Afra schreef op 10.06.2009 13:26:
Strings zetten we single quotes omheen.
En waar is je sql-injection beveiliging?
Dan zou het dus op ongeveer dit neerkomen:
$sql = 'UPDATE cms SET content = $inhoud WHERE `id` = 1';?
Werkt ook niet, deze error:
Notice: Unknown column '$inhoud' in 'field list'
In query: UPDATE cms SET content = $inhoud WHERE `id` = 1 in /var/www/html/verwerkscript.php on line 9
De querry doet het zo wel:
UPDATE
cms
SET
content = 12
WHERE
id = '1'
Maar zodra ik '.$inhoud.' of iets op de plaats van 12 doe krijg ik een error..
Gewijzigd op 01/01/1970 01:00:00 door luc
Je kan in je query gewoon: $_POST gebruiken, in je eerste bericht zeg je:
$inhoud = $_POST['inhoud'];
Dat is een variabele kopieren in een andere en er vervolgens niks mee doen, dan is dat niet nodig.
Quote:
Nee, dat wil je niet! Gebruik POST variabelen nooit direct (zonder beveiliging) in je query. Voor de duidelijkheid van je scripts zou je het volgende kunnen doen:Je kan in je query gewoon: $_POST gebruiken
Van $inhoud weet je nu dat het een variabele is die je veilig in je query kunt gebruiken en tevens voorkom je veelvuldig voorkomen van mysql_real_escape_string() in je queries.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Je bent geweldig.. Alleen was je " vergeten, met dat erbij aant einde doet hij het perfect. Bedankt voor de hulp, zal me hier eens in gaan verdiepen..