[英]Error is syntax of sql when updating item
我正在尝试编辑项目,但我不断收到错误消息: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']);
}
?>
其中一个字符串值中可能有一个引号。 由于您使用的是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']);
试试这个代替:
$sql = "update items set
artNaam='".$artikel->artNaam."',
artOmschrijving='".$artikel->artOmschrijving."',
artOmsKort='".$artikel->artOmsKort."',
artPrijs=$artikel->artPrijs,
artCategorie='".$artikel->artCategorie,"'
where id=$artikel->id";
字符串中的变量不能用单引号引起来,仅单引号将写$ artikel-> artNaam代替值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.