Rij uit database aanpassen waar id * is

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Luc

luc

10/06/2009 12:15:00
Quote Anchor link
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?
 
PHP hulp

PHP hulp

25/04/2024 13:46:24
 
- SanThe -

- SanThe -

10/06/2009 12:27:00
Quote Anchor link
Zie de vele tutorials hierover. UPDATE.
 
Tim Kampherbeek

Tim Kampherbeek

10/06/2009 12:36:00
Quote Anchor link
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
Gewijzigd op 01/01/1970 01:00:00 door Tim Kampherbeek
 
Joren de Wit

Joren de Wit

10/06/2009 12:46:00
Quote Anchor link
Tim Kampherbeek schreef op 10.06.2009 12:36:
Hier vragen stellen kan natuurlijk ook. Maar aangezien je geen flauw idee hebt hoe PHP werkt is het misschien een goeie tip.
Wie zegt dat hij geen idee heeft hoe PHP werkt? Dit is puur SQL en heeft dus niets met PHP te maken...

SQL beginnershandleiding

Zie deze handleiding en kijk dan zoals SanThe al zegt eens naar de UPDATE queries.
 
Luc

luc

10/06/2009 13:22:00
Quote Anchor link
Mijn php is niet zoals de meesten hier, maar meestal lukt alles me wel..
Heb nu dit stukje code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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');
?>

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
 
Afra ca

Afra ca

10/06/2009 13:26:00
Quote Anchor link
Strings zetten we single quotes omheen.
 
- SanThe -

- SanThe -

10/06/2009 13:37:00
Quote Anchor link
Afra schreef op 10.06.2009 13:26:
Strings zetten we single quotes omheen.

En waar is je sql-injection beveiliging?
 
Luc

luc

10/06/2009 13:46:00
Quote Anchor link
Goed dat je het zegt SanThe, heb het er even omheen gezet.

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
 
Erik Rijk

Erik Rijk

10/06/2009 14:02:00
Quote Anchor link
$sql = "UPDATE cms SET content = '" . mysql_real_escape_string($_POST['inhoud']) . "' WHERE `id` = 1;

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.
 
Joren de Wit

Joren de Wit

10/06/2009 14:03:00
Quote Anchor link
Strings horen in queries tussen enkele quotes en variabelen haal je altijd buiten quotes:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$sql
= "
  UPDATE cms
  SET content = '"
.$inhoud."'
  WHERE id = 1
"
;
?>

Quote:
Je kan in je query gewoon: $_POST gebruiken
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$inhoud
= mysql_real_escape_string($_POST['inhoud']);
?>

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
 
Luc

luc

10/06/2009 14:05:00
Quote Anchor link
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..
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.