prepared statement met update set werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robert Jansen

Robert Jansen

30/11/2015 10:17:23
Quote Anchor link
Hallo,

Ik heb een php script met een prepared statement met mysql update.
Maar in de code zit blijkbaar een fout want er wordt niet geupdated.
Ik denk dat er een fout zit in de WHERE maar misschien ook wel niet, heb een aantal dingen geprobeerd en zonder resultaat.

mijn vraag is: waar zit een fout in de code?


alvast bedankt.

mijn code is:
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
21
22
23
24
25
26
27
28
29
<?php

    //connectie maken
include 'connect.php';

 //sql voor wijzigen
$sql = "UPDATE amsterdam SET (voornaam, achternaam, adres , woonplaats, mobiel, beschrijving WHERE id = ?) VALUES (?,?,?,?,?,?,?)";
$stmt = $link->prepare($sql);
$stmt->bind_param("sssssss",  $voor_naam, $achter_naam, $adres, $woonplaats, $mobiel, $beschrijving, $id );

//variable aanmaken voor invoegen
 $id = $_POST['id'];
 $voor_naam = $_POST['voornaam'];
 $achter_naam = $_POST['achternaam'];
 $adres = $_POST['adres'];
 $woonplaats = $_POST['woonplaats'];
 $mobiel = $_POST['mobiel'];
 $beschrijving = $_POST['beschrijving'];
 $stmt->execute();


if (! $sql) {
    echo "Data niet toegevoegd";
}

    echo "Data met succes toegevoegd";

$stmt->close();
mysqli_close($link);
?>
 
PHP hulp

PHP hulp

24/04/2024 02:01:06
 
Randy vsf

Randy vsf

30/11/2015 10:22:10
Quote Anchor link
Die where hoort achteraan in de query.

Klik voor wat documentatie
 
Ivo P

Ivo P

30/11/2015 10:44:33
Quote Anchor link
Dat is een heel merkwaardige mix van een update-query en een insert-syntax.

normaal is het iets als
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
UPDATE tabel
SET kolom1 = 'aap',
    kolom2 = 'noot'
WHERE kolom3 = 'mies';


En naar believen mag je daar dan een prepared statement van maken

Toevoeging op 30/11/2015 10:47:01:

en als je 8 vraagtekens in je query zet, dan moet je ook 8 parameters binden (en niet 7).

Let daarbij ook op de volgorde
 
Thomas van den Heuvel

Thomas van den Heuvel

30/11/2015 14:01:25
Quote Anchor link
En als je dan toch een id wilt binden zal dit een getal moeten zijn, geen string.
 
Ivo P

Ivo P

30/11/2015 14:13:36
Quote Anchor link
@Thomas:

niet per se.
Ik zit hier met een database vol met primary keys die toch een varchar zijn.
(moeder van de data is een Navision database die exporteert naar MySQL)
 



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.