由于某些奇怪的原因,数据库不会更新。我可以获取信息,但是当我点击提交时它不会更新。有什么遗漏。
<?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只显示数据库,但内容未更新。
答案 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'] ."' ";