prepared statement met update set werkt niet
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)
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
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);
?>
//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);
?>
normaal is het iets als
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
En als je dan toch een id wilt binden zal dit een getal moeten zijn, geen string.
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)