数据未插入我的表中 PHP MySQL 中的 where 子句


data not inserting in my table in php mysql with where clause

<form method="post"  action="insert.php" >
<p>Name:<input type="text" name="food_name"  id="food_name"/>
<p>Price:<input type="text" name="food_price"  id="food_price"/>
<?php 
$query = "SELECT * FROM category";  
// Execute it, or return the error message if there's a problem.  
 $result = mysql_query($query) or die(mysql_error()); 
//$options = "";
$dropdown = "<select name='cat_name'>";
while($row = mysql_fetch_assoc($result)) 
{
 $dropdown .= "'r'n<option value='{$row['cat_id']}'>{$row['cat_name']}</option>";
}
$dropdown .= "'r'n</select>";
echo $dropdown;
?>
 <input type="submit" value="Insert Price" />
<a href="show.php">Cancel
</form>

这是从下拉菜单和文本框中获取数据的表单

X===

================== X
if(isset($_POST['cat_name'])!= '')
{
$cat_id=$_POST['cat_name'];
$food_name=$_POST['food_name'];
$foodPrice=$_POST['food_price'];

$query="INSERT INTO food (food_name,food_price) values( $food_name,$foodPrice) where 
cat_id= $cat_id";
if(mysql_query($query))
{
echo "new item added";
}
else
{
die(mysql_error());} 
}
?>

这是错误"您的 SQL 语法有误;检查与您的MySQL服务器版本相对应的手册,了解在第1行的"其中cat_id= 4"附近使用的正确语法

它应该通过选择类别来插入食品名称和价格

您正在混合insert语句和update语句。insert没有where条款。您只是在没有任何条件的情况下向表中添加记录

INSERT INTO food (food_name,food_price) values('$food_name', $foodPrice)

如果要更新记录,可以执行以下操作:

update food set food_name = '$food_name', food_price = $foodPrice
where cat_id= $cat_id";
你不需要插入

的 where 子句,这是没有意义的,如果你需要设置 id 然后把它作为参数之一传入,如果是自动增量,那就不要包含它。

$query="INSERT INTO food (food_name,food_price,cat_id) values('"$food_name'",$foodPrice,$cat_id)";

考虑使用 mysqli 或 PDO,但在涉及 sql 查询时,不要使用 mysql_* 版本。 您应该考虑使用预准备语句来帮助防止 SQL 注入。

按如下方式修改查询

$query="INSERT INTO food (food_name,food_price) values('".$food_name."','".$foodPrice."');

如果cat_id已可用,则意味着必须使用更新查询更新表。

update table food set food_name='$food_name' , food_price ='$foodPrice' where cat_id = $cat_id;

你不能在 INSERT-语句中使用 WHERE。

您有 2 个选项:

进行更新:

UPDATE food SET food_name=<food_name>, food_price=<food_price> WHERE cat_id=<cat_id>;

或以这种方式创建一个 INSERT(其中 food_name+cat_id 在本例中具有唯一索引(:

INSERT INTO foot (cat_id, food_name, food_price) VALUES (<cat_id>, <food_name>, <food_price>) ON DUPLICATE KEY UPDATE food_price=VALUE(food_price);

INSERT INTO ... ON DUPLICATE KEY UPDATE ...是一个批量更新语句。

如果您已经设置了 id,请对其进行编辑。

UPDATE food SET food_name = "Name", food_price = "Price" WHERE cat_id = $cat_id您不需要插入上的 where 子句