数据库没有更新

时间:2013-09-02 02:50:19

标签: php mysql database

由于某些奇怪的原因,数据库不会更新。我可以获取信息,但是当我点击提交时它不会更新。有什么遗漏。

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpwd = 'ALLO';
$dbname = 'test_db';
$con = mysql_connect($dbhost, $dbuser, $dbpwd );
if(! $con )
{
    die("\$con: $con \nCould not connect: " . mysql_error());
}
$select_db=mysql_select_db($dbname);

$strquery = "SELECT * from Students WHERE Age='99'";
$results = mysql_query ($strquery);
$row = mysql_fetch_array($results);

?>
<body>

<table align="center">
    <tr>
        <td>
        <form id="update" name="update" method="POST" action="update.php">

        <table border="0" bgcolor="#6699CC" cellpadding="0" cellspacing="1">

            <tr bgcolor="#6699CC">
                <td colspan="2" align="center">Edit Student Records</td>
            </tr>

            <tr bgcolor="#FFFFFF">
                <td>F NAME :</td>
                <td><input name="fname" type="text" id="fname"
                    value=" <?php echo $row["FirstName"]; ?> " /></td>
            </tr>
            <tr bgcolor="#FFFFFF">
                <td>L NAME :</td>
                <td><input name="lname" type="text" id="lname"
                    value=" <?php echo $row["LastName"]; ?> " /></td>
            </tr>
            <tr bgcolor="#FFFFFF">
                <td>Age :</td>
                <td><input name="age" type="text" id="age"
                    value=" <?php echo $row["Age"]; ?>" /></td>
            </tr>

            <tr bgcolor="#FFFFFF">
                <td colspan="2" align="center"><input type="submit" name="Submit"
                    value="Update" /></td>
            </tr>

        </table>
        </form>
        </td>

    </tr>
</table>

update.PHP:

<?php
$dbhost  = 'localhost';
$dbuser  = 'root';
$dbpwd   = 'ALLO';
$dbname  = 'test_db';
$connect = mysql_connect($dbhost, $dbuser, $dbpwd);

if (!$connect) {
    die("\$connect: $connect \nCould not connect: " . mysql_error());
}
$select_db = mysql_select_db($dbname);

$strquery = "
    UPDATE Students
        SET FirstName = '" . $_POST['fname'] . "',
        LastName = '" . $_POST['lname'] . "',
    WHERE
        Age   = '" . $_POST['age'] . "'
";

$results = mysql_query($strquery);

header('location: displaytb.php ');
?>

我认为这是不起作用的更新,因为其他一切似乎都很好。 displaytb.php只显示数据库,但内容未更新。

2 个答案:

答案 0 :(得分:0)

您的Where子句正在使用Age,因此,如果您编辑age,那么原因无法找到。

就像JasonMcCreay所说的那样,mysql_ *已被弃用。尝试搜索PDO或mysqli _ *。

答案 1 :(得分:0)

在sql查询中,存在语法错误。 lastname之后不应该是冒号:

  $strquery="UPDATE Students SET        FirstName   = '". $_POST['fname']  ."', 
                             LastName   = '".  $_POST['lname']  ."' 
                          WHERE Age   = '".  $_POST['age']  ."' ";