-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)
如果你有一个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
已弃用.使用mysqli
或PDO
.
注意 :
$db
是一个数据库连接变量.你需要设置像
$db = mysqli_connect("localhost","username","password","database_name");
Run Code Online (Sandbox Code Playgroud)
看它不是mysql_connect
,它的mysqli_connect.根据您的需要替换db值.