gpt4 book ai didi

php - 只更新数据库中的最后一行

转载 作者:行者123 更新时间:2023-11-30 00:57:26 25 4
gpt4 key购买 nike

我正在为学校项目构建一个管理员后端,以更改产品数据。这是我的表单代码

         dbCon();
$query = "SELECT * FROM product WHERE categoryid = 1;";
$result = mysqli_query($dbc,$query) or die('Error querying database.');
if (mysqli_num_rows($result) == NULL) {
mysqli_close($dbc);header("Location:index.php?l=f");exit();
}
echo "<h1>Middlefartvej:</h1>";
while ($row = mysqli_fetch_assoc($result)){
$name = $row['name'];
$price = $row['price'];
$image = $row['image'];
$productid = $row['productid'];
echo "<li>";
echo "<img src='".$image."' alt='Food_pic' style='height:100px'>";
echo "Change picture: <input name='image' type='text' class='' value='".$image."' onFocus='this.value=' placeholder='".$image."'/>";
echo "<input name='productid' type='text' class='' value='".$productid."' onFocus='this.value=' placeholder='".$productid."'/>";
echo "Change name of food:<input name='name' type='text' class='' value='".$name."' onFocus='this.value=' placeholder='".$name."'/>";
echo "Change price: "." "."<input name='price' type='text' class='' value='".$price."' onFocus='this.value=' placeholder='".$price."'/>";
echo '<input type="submit" name="submit" value="Go" class="loginButton">';
echo "</li>";
}

但现在我只能更改最后一个表单字段,如果我更改其他内容,它不会执行任何操作。这是编辑代码

dbCon();

//get the variables



$name = $_POST["name"];
$categoryid = $_POST["categoryid"];
$price = $_POST["price"];
$image = $_POST["image"];
$productid = $_POST["productid"];


//update the database with newdata that user has inserted

$query= "UPDATE product SET name='".$name."', price='".$price."' , image='".$image."' WHERE productid = '".$productid."';";
$result = mysqli_query($dbc,$query) or die(mysqli_error($dbc));

最佳答案

进行一些调试怎么样?在执行查询之前回显 $query 变量的值。该说法有效吗?它是从 sql 命令行还是 phpmyadmin 执行的?

从我的头顶上看,这看起来很可疑:

$query= "UPDATE product SET  name='".$name."', price='".$price."' , image='".$image."' WHERE productid = '".$productid."';";

如果productid是一个整数,您不需要或不想在它周围添加单引号,因为它不是字符串。此外,您也不会在使用客户端库的语句中包含结束分号。 PHP 插值可以为您处理很多事情,而不是您一直尝试连接来绕过转义双引号。

$query= "UPDATE product SET name='$name', price='$price', image='$image' WHERE productid = $productid";

话虽如此,您应该对所有输入使用绑定(bind)变量,而不是插入到查询中。

参见:http://php.net/manual/en/mysqli-stmt.bind-param.php

关于php - 只更新数据库中的最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20431279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com