簡體   English   中英

PHP形式:不更新mysql數據庫

[英]PHP form : not updating mysql database

我幾乎沒有編程經驗,並且嘗試過第一個項目,但是我對如何更新數據庫有些困惑,因此我單擊了“編輯”,正確的記錄被加載到編輯屏幕update.php中。

當我單擊更新時,我收到來自updated.php的消息,說明數據庫已更新,但是數據庫未更新,當我顯示記錄與更新前相同時,在此先感謝您的幫助。

以下代碼:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Form Edit Data</title>
</head>

<body>
    <table border=1>
    <tr>
        <td align=center>Form Edit Employees Data</td>
    </tr>
    <tr>
    <td>
        <table>
        <?
        $user_name = "";
        $password = "";
        $database = "";
        $server = "localhost";

        mysql_connect($server, $user_name, $password);
        $db_found = mysql_select_db($database);
        $id = $_GET['id'];
        $order = "SELECT * FROM MY_ID where ID = ' " .$id . " ' ";
        $result = mysql_query($order);
        $row = mysql_fetch_array($result);
        ?>
        <form method="post" action="edit_data.php"?id=<?= $id ?>>
            <input type="text" name="id" value="<? echo "$row[ID]"?>">
            <tr>        
                <td>First Name</td>
                <td>
                    <input type="text" name="FirsName" size="20" value="<? echo "$row[FirstName]"?>">
                </td>
            </tr>
            <tr>
                <td>Sur Name</td>
                <td>
                    <input type="text" name="SurName" size="40" value="<? echo "$row[SurName]"?>">
                </td>
            </tr>
            <tr>
                <td>Address</td>
                <td>
                    <input type="text" name="Address" size="40" value="<? echo "$row[Address]"?>">
                </td>
            </tr>
            <tr>
                <td align="right">
                    <input type="submit" name="submit" value="submit">
                </td>
            </tr>
        </form>
        </table>

    </td>
    </tr>
    </table>
</body>
</html>

這是另一個文件

<?php
$user_name = "";
$password = "";
$database = "";
$server = "";

mysql_connect($server, $user_name, $password);
$db_found = mysql_select_db($database);

$id = $_REQUEST['ID'];
$FirstName = trim(mysql_real_escape_string($_POST["FirstName"]));
$SurName = trim(mysql_real_escape_string($_POST["SurName"]));
$Address = trim(mysql_real_escape_string($_POST["Address"]));

$sql = "UPDATE MY_ID SET FirstName='$FirstName',SurName='$SurName',Address='$Address' WHERE ID='$id'";
$result=mysql_query($sql);


if ($result){
    echo "Successful";
    echo "<BR>";
    echo "<a href='edit.php'>View result</a>";
}
else {
    echo "ERROR";
}

?>

好像您忘記了雙引號和句號。 您應該將其寫為:““。$ example。”“

$sql = "UPDATE MY_ID SET FirstName='".$FirstName."',SurName='".$SurName."',Address='".$Address.:' WHERE ID='".$id."'";

這是因為您的表單方法是POST ,並且您正在嘗試GET ID。 可能ID返回null。 我的建議是將一個隱藏的輸入與name="ID"一起放在您的表單中,然后在您發布的頁面中以$_POST["ID"];形式讀取它$_POST["ID"];

是的,答案就是曼蘇爾所說的。 您不應對變量使用單個配額。

因此,編寫這樣的代碼是不好的做法:

<input type="text" value="<?php echo "$row[name]"; ?>">

它應該是

<input type="text" value="<?php echo $row['name']; ?>">

很明顯,並且在插入或更新記錄時,您應編寫如下:

$sql = "UPDATE MY_ID SET FirstName='" . $FirstName . "',
                         SurName='" . $SurName . "',
                         Address='" . $Address . "' 
         WHERE ID='" . $id . "'";
mysql_query($sql);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM