无法获取php更新mysql

时间:2013-07-12 06:15:47

标签: php mysql

我有一个PHP脚本,我用来更新MySQL数据库工作正常我如何使用它,我现在使用相同的脚本尝试更新另一个数据库表但我不能让它写任何更新表。该脚本不显示任何错误,它只是在整个过程中移动,就好像它可以工作但发布到MySQL的帖子。就像我之前说的那样,我已经将这个脚本与另一种形式一起使用了我对新表单所做的就是更改变量以匹配我所拥有的并更改了数据库表名。我的标点符号也是正确的。我只是想不通为什么它不会将更新的信息写入MySQL。

这是我的代码:

<?php
//----------FORM DATA-----------//
$id=$_POST['id'];

$team_name=!empty($_POST['team_name'])? $_POST['team_name'] : '';
$first_name=!empty($_POST['first_name'])? $_POST['first_name'] : '';
$last_name=!empty($_POST['last_name'])? $_POST['last_name'] : '';
$registration=!empty($_POST['registration'])? $_POST['registration'] : '';
$pay_status=!empty($_POST['pay_status'])? $_POST['pay_status'] : '';
$physical=!empty($_POST['physical'])? $_POST['physical'] : '';
$photo=!empty($_POST['photo'])? $_POST['photo'] : '';
$notes=!empty($_POST['notes'])? $_POST['notes'] : '';


//----------CONNECT TO DATABASE----------//
include 'elite_connect.php';


mysql_query("UPDATE cheer SET  team_name='$team_name', first_name='$first_name', last_name='$last_name', registration='$registration', pay_status='$pay_status', physical='$physical', photo='$photo', notes='$notes'
WHERE `id` = '$id'");

mysql_affected_rows();

echo mysql_error();

?>
<html>
<body style="background-color: #C7DFDF">
<center>
<br><br><br>
<form name="results" method="post" action="cheer_results.php" enctype="multipart/form-data" id="cheerresult">
<input type="submit" class="submit" id="cheerresult" style="width: 165px" value="View Results">
</form>
</center>
</body>
</html>

我非常清楚可能有sql注入,所以请不要评论它,在这种情况下我真的不关心它!

2 个答案:

答案 0 :(得分:1)

每当您使用$_POST时,最好检查一下是否使用isset()

进行设置
<?php
//----------FORM DATA-----------//

if(isset($_POST['id'])){

   $id=$_POST['id'];

   $team_name=!empty($_POST['team_name'])? $_POST['team_name'] : '';
   $first_name=!empty($_POST['first_name'])? $_POST['first_name'] : '';
   $last_name=!empty($_POST['last_name'])? $_POST['last_name'] : '';
   $registration=!empty($_POST['registration'])? $_POST['registration'] : '';
   $pay_status=!empty($_POST['pay_status'])? $_POST['pay_status'] : '';
   $physical=!empty($_POST['physical'])? $_POST['physical'] : '';
   $photo=!empty($_POST['photo'])? $_POST['photo'] : '';
   $notes=!empty($_POST['notes'])? $_POST['notes'] : '';


   //----------CONNECT TO DATABASE----------//
   include 'elite_connect.php';


   mysql_query("UPDATE cheer SET  team_name='$team_name', first_name='$first_name', last_name='$last_name', registration='$registration', pay_status='$pay_status', physical='$physical', photo='$photo', notes='$notes'
   WHERE `id` = '$id'");

   mysql_affected_rows();

   echo mysql_error();
}
?>

这样,如果您的代码没有执行,您就知道id未发布。在这种情况下,可以通过向表单添加隐藏输入来轻松解决此问题。

<input type="hidden" name="id" value="<?php echo $data2['id']?>"  />

答案 1 :(得分:0)

我不清楚但是,您可以尝试一次这种基本语法吗?

mysql_query("UPDATE cheer SET  team_name='".$team_name."', first_name='".$first_name."', last_name='".$last_name."', registration='".$registration."', pay_status='".$pay_status."', physical='".$physical."', photo='".$photo."', notes='".$notes."'
WHERE `id` = '".$id."'");

这对我很有用了!