0

2 つのファイルがあります。1) フォーム 2) 更新ファイル

これは update.php の更新フォームです。

<?php

$host="localhost"; // Host name
$username="username"; // Mysql username
$password="password"; // Mysql password
$db_name="datasename"; // Database name
$tbl_name="data"; // Table name

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// get value of id that sent from address bar
$id=$_GET['id'];

// Retrieve data from database
$sql="SELECT * FROM $tbl_name WHERE id='$id'";
$result=mysql_query($sql);

$rows=mysql_fetch_array($result);
?>


<div align="center"><img src="http://www.multihunters.co.uk/images/tf_ideal/blue/misc/logo.png" width="400" height="125">

</div>
<div align="center">
  <table width="400" border="0" cellspacing="1" cellpadding="0">
    <tr>
      <form name="form1" method="post" action="update_ac.php">
        <td>
          <table width="100%" border="0" cellspacing="1" cellpadding="0">
            <tr>
              <td>&nbsp;</td>
              <td colspan="3"><strong>Update data in mysql</strong> </td>
            </tr>
            <tr>
              <td align="center">&nbsp;</td>
              <td align="center">&nbsp;</td>
              <td align="center">&nbsp;</td>
              <td align="center">&nbsp;</td>
            </tr>
            <tr>
              <td align="center">&nbsp;</td>
              <td align="center"><strong>Citizen ID</strong></td>
              <td align="center"><strong>Citizen Name</strong></td>
              <td align="center"><strong>Citizenship</strong></td>
            </tr>
            <tr>
              <td>&nbsp;</td>
              <td align="center">
                <input name="citid" type="text" id="citid" value="<? echo $rows['citid']; ?>">
              </td>
              <td align="center">
                <input name="citname" type="text" id="citname" value="<? echo $rows['citname']; ?>" size="15">
              </td>
              <td>
                <input name="citizenship" type="text" id="citizenship" value="<? echo $rows['citizenship']; ?>" size="15">
              </td>
            </tr>
            <tr>
              <td>&nbsp;</td>
              <td>
                <input name="id" type="hidden" id="id" value="<? echo $rows['id']; ?>">
              </td>
              <td align="center">
                <input type="submit" name="Submit" value="Submit">
              </td>
              <td>&nbsp;</td>
            </tr>
          </table>
        </td>
      </form>
    </tr>
  </table>
</div>


<?php
// close connection
mysql_close();

?>

これは私のアクション フォーム update_ac.php です。

$host="localhost"; // Host name
$username="username"; // Mysql username
$password="password"; // Mysql password
$db_name="database"; // Database name
$tbl_name="data"; // Table name

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// update data in mysql database
$sql="UPDATE $tbl_name SET citid='$citid', citname='$citname', citizenship='$citizenship' WHERE id='$id'";
$result=mysql_query($sql);

// if successfully updated.
if($result){
    echo "Successful";
    echo "<BR>";
    echo "<a href='http://www.multihunters.co.uk/citizens_permlist.php'>View result</a>";
}
else
{
    echo "ERROR";
}

「Successful」というメッセージが表示されますが、データが更新されているかどうかを確認すると、何も変更されていません。何が間違っていますか?

4

2 に答える 2

2

$citid、、および$citnameが定義されていません。から取得し、エスケープしてから、クエリに入れる必要があります。$citizenship$id$_POST

mysql_*また、 APIのご利用もおやめください。mysqliまたは PDO 拡張を使用します。

于 2013-05-11T10:25:55.973 に答える
0

コードを次のように変更するだけです

$citid = mysql_real_escape_string($_POST['citid']);
$citname = mysql_real_escape_string($_POST['citname']);
$citizenship = mysql_real_escape_string($_POST['citizenship']);

$sql="UPDATE $tbl_name SET citid='$citid', citname='$citname', citizenship='$citizenship' WHERE id='$id'";
$result=mysql_query($sql);

ノート

で始まる PHP 関数mysql_は、PHP 5.5.0 で非推奨になりました。そうする立場にある場合は、代わりにMySQLiまたはPDO拡張機能を使用するようにコードを更新することを検討してください。

于 2013-05-11T10:31:03.840 に答える