fout in de sql query prepare
ik heb een script waarmee je een update kan uitvoeren in de db.
Maar ik krijg de volgende foutmelding, wanneer je op de knop drukt van het formulier om te gaan updaten:
Error updating record: 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 '? WHERE id = ?' at line 1
mijn vraag is: hoe kan je de foutmelding oplossen?
alvast bedankt.
mijn code om te updaten 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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if(isset($_POST['submit']))
{
$sql = "UPDATE users SET password = ? WHERE id = ? ";
$stmt = $link->prepare($sql);
$stmt->bind_param("si", $password, $id);
//variable aanmaken voor invoegen
$id = $_POST['id'];
$password = hash ('SHA512', $_POST['herhaal_ww']);
$stmt->execute();
if (mysqli_query($link, $sql)) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . mysqli_error($link);
}
//sluiten
$stmt->close();
mysqli_close($link);
}
{
$sql = "UPDATE users SET password = ? WHERE id = ? ";
$stmt = $link->prepare($sql);
$stmt->bind_param("si", $password, $id);
//variable aanmaken voor invoegen
$id = $_POST['id'];
$password = hash ('SHA512', $_POST['herhaal_ww']);
$stmt->execute();
if (mysqli_query($link, $sql)) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . mysqli_error($link);
}
//sluiten
$stmt->close();
mysqli_close($link);
}
En in $sql staan toch echt gewoon vraagtekens.
Toevoeging op 08/06/2016 15:40:57:
Je zoekt waarschijnlijk iets als $stmt->affected_rows.
Waarom gebruik je trouwens prepared statements in MySQLi? :/
En je combineert inderdaad prepared statements en de normale manier van queries uitvoeren in MySQLi...
Queries met prepared statements in MySQLi zijn standaard ook ongebufferd. Dit heeft enige implicaties voor hoe je met queries en query-resultaten om kan gaan...
Daarbij maak je via die constructie ook echt gebruik van de "native" prepared statements van MySQL zelf, dit is echt een functionaliteit van MySQL-databases. Indien je een prepare() uitvoert gaat er echt een query-sjabloon naar de MySQL-server. De execute() aanroep resulteert in NOG een query. Je voert dus effectief TWEE queries uit, wat in dit geval niet echt nodig is.