如何更新表格中的多个列? 它不会改变数据库中的数据。
<?php
$id = $_GET['user'];
$any = mysql_query("SELECT * FROM function WHERE id='".$id ."'");
if ($edit = mysql_fetch_assoc($any)){
?>
//this is the form for the input type when updating the column
<form action="reserve_event.php" method="POST">
<input type="text" name="fh" value="<?php echo $edit['fh'];?>">
<input type="text" name="package" value="<?php echo $edit['package'];?>">
<input type="text" name="guest" value="<?php echo $edit['guest'];?>">
<input type="text" name="fee" value="<?php echo $edit['fee'];?>">
<input type="text" name="status" value="<?php echo $edit['status'];?>">
<input type="submit" name="submit" value="submit">
</form>
//this part is when i submit the data.
<?php
}
if(isset($_POST['submit'])){
$fh= $_POST["fh"];
$package= $_POST["package"];
$guest= $_POST["guest"];
$fee = $_POST["fee"];
$status= $_POST["status"];
$sql1 = mysql_query("UPDATE function SET fh='".$fh."',package= '".$package."', guest = '".$guest."',fee = '".$fee."',status= '".$status."' WHERE id='".$id."'");
}
?>
答案 0 :(得分:0)
您可以尝试使用打击代码:
<?php
if(isset($_POST['submit']))
{
$fh= $_POST["fh"];
$package= $_POST["package"];
$guest= $_POST["guest"];
$fee = $_POST["fee"];
$status= $_POST["status"];
$sql1 = mysql_query("UPDATE `function` SET `fh`='".$fh."',`package`= '".$package."', `guest` = '".$guest."',`fee` = '".$fee."',`status`= '".$status."' WHERE `id`='".$id."'");
}
?>
答案 1 :(得分:0)
您正在使用保留字&#34;功能&#34;对于你的表名的mysql,一个或你的列名称&#34; status&#34;也是一个保守的词。这意味着mysql服务器将读取函数并尝试执行它而不是选择具有该名称的表。恕我直言,最好不要在表或列定义中使用保留字,但你可以使用反引号`来转义名称。
This link会为您提供保留字列表。 所以只需这样调整你的查询:
$sql1 = mysql_query("UPDATE `function`
SET fh='$fh',package= '$package', guest = '$guest',fee = '$fee', `status`= '$status'
WHERE id='$id'");
如果您的查询中有更多保留字,请查看我提供给您的链接
同样适用于选择查询:
$any = mysql_query("SELECT * FROM `function` WHERE id='$id'");
正如我在评论中提到的那样:您的代码对SQL注入是开放的:使用预准备语句来清理用户输入。在PHP 7中不推荐使用Mysql_ * API。移至mysqli或更好的PDO