0

MySQL データベースを更新するために使用する PHP スクリプトがあります。これは、使用している方法で正常に動作します。現在、同じスクリプトを使用して別のデータベース テーブルを更新しようとしていますが、更新を書き込むことができません。テーブル。スクリプトはエラーを表示しません。プロセス全体を動作しているかのように移動しますが、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インジェクションの可能性があることをよく知っているので、それについてコメントしないでください。このシナリオでは本当に気にしません!

4

2 に答える 2

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']?>"  />
于 2013-07-12T06:45:04.940 に答える