【发布时间】:2014-12-08 16:48:31
【问题描述】:
我一直在这里尝试各种教程和解决方案,但我无法让它发挥作用。请帮忙!
** 更新 #1 **
这是我在运行代码时收到的错误:“插入中发生错误:您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解要使用的正确语法在第 1 行的 '' 附近"
** 更新 #2 **
这是显示表中所有内容的页面:
编辑浏览.php
`
$sql = "SELECT * FROM inventory";
$result = $connection->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "
<img src=$row[image] id='productImage'> <br>
product: $row[product] <br>
category: $row[category] <br>
seller: $row[seller] <br>
<a href='edit.php?id=$row[id]'>Edit</a>
<hr>
";
}
} else {
echo "No Results";
}
$connection->close();
`
这是当您单击上面的编辑按钮时显示的页面:edit.php
`
<?php
// Connection code..etc..
$sql = "SELECT * FROM inventory WHERE id=".$_REQUEST['id'];
$result = $connection->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
} else {
echo "No Results";
}
$connection->close();
?>
<div class="row" id="mainSection">
<form action="update.php" method="post">
<input type="hidden" name="id" value="<?=$id?>">
<h3>Image:</h3>
<input type="text" name="image" value="<?=$row['image']?>">
<h3>Product:</h3>
<input type="text" name="product" value="<?=$row['product']?>">
<h3>Category:</h3>
<input type="text" name="category" value="<?=$row['category']?>">
<h3>Seller:</h3>
<input type="text" name="seller" value="<?=$row['seller']?>">
<br>
<br>
<input type="submit" value="Update My Record">
</form>
<br>
<a href="admin.php" id="backButton">Back</a>
</div>
`
这是当您单击上面的“更新我的记录”按钮时运行的文件:update.php
'
$id= $_POST['id'];
$image = $_POST['image'];
$product = $_POST['product'];
$category = $_POST['category'];
$seller = $_POST['seller'];
$sql = "UPDATE inventory set image='$image', product='$product', category='$category', seller='$seller' WHERE id = $id";
if ($connection->query($sql) === true) {
echo "Inserted Successfully";
} else {
echo "Error occured in the insert: " . $connection->error;
}
$connection->close();
'
【问题讨论】:
-
您使用的语法不正确。查找
UPDATE语法的一些示例。 -
正如在别处提到的,您正在为 UPDATE 语句使用 INSERT 语法。你需要改变这一点。如果您将变量直接传递给查询,您也会面临 SQL 注入的风险。我会查看准备好的语句:MySQLi php.net/manual/en/mysqli.quickstart.prepared-statements.php 或 PDO php.net/manual/en/pdo.prepared-statements.php
-
@abl 更新了我的帖子!
-
@versalle88 更新了我的帖子!
-
您可能缺少某些值和/或未设置默认值。您可以在 else 语句中回显 $sql 以便我们可以看到它尝试运行的确切查询吗? echo '发生错误:' 。 $连接->错误。 ' 在查询中:' 。 $sql;