我正在尝试编辑项目,但我一直收到错误消息: 您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以获得正确的语法。
我在google上搜索了我的语法问题是什么,但我看不出问题。
任何人都可以帮助我吗?
提前致谢!
<?php
if ( isset($_POST['ga']) ) {
$artikel = new artikel();
$artikel->id = $_SESSION['id'];
$artikel->artNaam = $_POST['naam'];
$artikel->artOmschrijving = $_POST['oms'];
$artikel->artOmsKort = $_POST['omsKort'];
$artikel->artPrijs = $_POST['prijs'];
$artikel->artCategorie = $_POST['categorie'];
$sql = "update items set
artNaam='$artikel->artNaam',
artOmschrijving='$artikel->artOmschrijving',
artOmsKort='$artikel->artOmsKort',
artPrijs=$artikel->artPrijs,
artCategorie='$artikel->artCategorie'
where id=$artikel->id";
if ( $conn->query($sql) ) {
header('Location: wijzigArtikel.php?'.$artikel->id);
} else {
die($conn->error);
}
unset($_SESSION['id']);
}
?>
答案 0 :(得分:2)
其中一个字符串值可能有引号。由于你使用的是mysqli,你应该使用预备语句而不是替换变量。
$stmt = $conn->prepare("update items set
artNaam=?,
artOmschrijving=?,
artOmsKort=?,
artPrijs=?,
artCategorie=?
where id=?";
$stmt->bind_param("sssisi", $artikel->artNaam, $artikel->artOmschriving,
$artikel->artOmsKort, $artikel->artPrijs, $artikel->artCategorie,
$artikel->id);
if ($stmt->execute()) {
header('Location: wijzigArtikel.php?'.$artikel->id);
} else {
die($conn->error);
}
unset($_SESSION['id']);
答案 1 :(得分:-2)
请改为尝试:
$sql = "update items set
artNaam='".$artikel->artNaam."',
artOmschrijving='".$artikel->artOmschrijving."',
artOmsKort='".$artikel->artOmsKort."',
artPrijs=$artikel->artPrijs,
artCategorie='".$artikel->artCategorie,"'
where id=$artikel->id";
字符串中的变量不能用单引号,单引号只能写$ artikel-&gt; artNaam不是值。