mysql UPDATE查询无法运行

-7 php mysql sql sql-update

我想更新信息.当我在代码中使用以下代码时,我的代码出错了:

if(isset($_POST['submit'])){
    $sql = "UPDATE  `food`.`food_item` 
    SET `food_name` =  '$_POST[food_name]',
        `food_price` =  '$_POST[food_price]',
        `food_cat` =  '$_POST[food_category]' 
        WHERE  `food_item`.`id` ='$_POST[id]';";

    $result = mysql_query($sql) or die("query not");

    header("Location: product_info.php") ;
}
Run Code Online (Sandbox Code Playgroud)

Yuv*_*Raj 6

如果你有一个input像,

<input type="text" name="product_name" />
Run Code Online (Sandbox Code Playgroud)

你应该得到的价值,

 $_POST['product_name'];
Run Code Online (Sandbox Code Playgroud)


你的表单方法是否为GET的POST

如果您的方法类型是POST,您应该得到它$_POST['input_name']

如果您的方法类型是GET,您应该得到它$_GET['input_name']


您在html中提到的所有输入名称是否都与PHP代码匹配?

例如:如果您有一个输入类型的表单,

  <input type="text" name="product_name" />
Run Code Online (Sandbox Code Playgroud)

然后,在PHP代码中,您应该使用您在name属性中输入的内容来获取它

   $_POST['product_name'] OR $_GET['product_name']
Run Code Online (Sandbox Code Playgroud)

不是这样的,

   $_POST['prod_name'] OR $_GET['prod_name']
Run Code Online (Sandbox Code Playgroud)


试试这个,

if(isset($_POST['submit'])
{
 $food_name = $_POST['food_name'];
 $food_price = $_POST['food_price'];
 $food_cat = $_POST['food_category']; 
 $id = $_POST['id'];

 // do not directly input the form data to sql, filter it by a special function mysqli_real_escape_string
// eg : $food_price = mysqli_real_escape_string($db, $_POST['food_price']);
// before executing the query, try to echo the each form input and sql query for clear picture.

$sql = "UPDATE  `food`.`food_item` SET `food_name` =  '$food_name',`food_price` =  '$food_price',`food_cat` =  '$food_cat' WHERE  `food_item`.`id` ='$id'";
$result = mysqli_query($db, $sql);
if($result)
{
    //header("Location: product_info.php") ;
    echo "success";
}
else
{
   echo "fail";
 }
}
else
{
  echo "form not submitted";
  // use header to redirect to old page again
}
Run Code Online (Sandbox Code Playgroud)

警告 :

mysql已弃用.使用mysqliPDO.

注意 :

$db是一个数据库连接变量.你需要设置像

$db = mysqli_connect("localhost","username","password","database_name");
Run Code Online (Sandbox Code Playgroud)

看它不是mysql_connect,它的mysqli_connect.根据您的需要替换db值.