这是我的代码。在此代码中,当您使用PHP编辑和“更新”数据库中的数据时,它不会更改数据库或myphpadmin中的数据。看看下面的代码:
<?php
include("dataconn.php"); //connect to database with the external php.
if($_SESSION["loggedin"]!="true")
header("location:admin_login.php");
$aid=$_SESSION["userid"];
$admin_info="select * from admin where AD_ID='".$aid."'";
if(isset($_POST["savebtn"]))
{
$adname=$_POST["name"];
$adaddress=$_POST["address"];
$ademail=$_POST["email"];
$adcontact=$_POST["contact"];
mysql_query("update admin set AD_NAME='".$ad_name."',ADDRESS='".$adaddress."',EMAIL='".$ademail."',CONTACT_NUM='".$adcontact."' where AD_ID=$aid");
header("location:profile.php");
}
?>
<body>
<form name="edit" method="post" action="">
<tr>
<th class="title">Name</th>
<td>:</td>
<th><input type="text" size="50" value="<?php echo $row["AD_NAME"]?>" name="name"/></th>
</tr>
<tr>
<th class="title">Address</th>
<td>:</td>
<th><input type="text" size="50" value="<?php echo $row["ADDRESS"];?>" name="address" /></th>
</tr>
<tr>
<th class="title">Email</th>
<td>:</td>
<th><input type="text" size="50" value="<?php echo $row["EMAIL"];?>" name="email"/></th>
</tr>
<tr>
<th class="title">Contact Number</th>
<td>:</td>
<th><input type="text" size="50" value="<?php echo $row["CONTACT_NUM"];?>" name="contact"></th>
</tr>
<table>
<span id="edit"><input type="submit" name="savebtn" value="SAVE/CHANGE"/></span>
</form>
</body>
</html>
我试图多次修复,但它仍然有同样的问题。你能救我吗?
答案 0 :(得分:1)
尝试用下面列出的标签替换你当前的标签,这可能会有所帮助。
<form name="edit" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
答案 1 :(得分:1)
帮助查找错误:
<?php
echo $adname . '<br />';
echo $adaddress . '<br />';
echo $ademail . '<br />';
echo $adcontact . '<br />';
$result = mysql_query("update admin set AD_NAME='".$ad_name."',ADDRESS='".$adaddress."',EMAIL='".$ademail."',CONTACT_NUM='".$adcontact."' where AD_ID=$aid");
if (!$result) {
die('Invalid query: ' . mysql_error());
}else{
//header("location:profile.php");
echo "Success";
}
?>
尝试将代码更改为DO,如下所示:
<?php
if(isset($_POST["savebtn"])){
$adname=$_POST["name"];
$adaddress=$_POST["address"];
$ademail=$_POST["email"];
$adcontact=$_POST["contact"];
try {
$pdo = new PDO('mysql:host=localhost;dbname=someDatabase', $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare('UPDATE admin SET AD_NAME=:adname ,ADDRESS = :adaddress , EMAIL = :ademail , CONTACT_NUM = :adcontact WHERE AD_ID = :aid');
$stmt->execute(array(
':adname' => $adname,
':adaddress' => $adaddress,
':ademail' => $ademail,
':adcontact' => $adcontact,
':aid' => $aid
));
header("location:profile.php");
} catch(PDOException $e) {
echo 'Error: ' . $e->getMessage();
}
}
?>
答案 2 :(得分:0)
您绝对应该考虑转移到mysqli或PDO以进行PHP MYSQL集成。至少你应该使用至少某种形式的输入转义(即使用mysql_real_escape_string())。
关于它不工作你真的需要让php / mysql告诉你它的错误是什么; 像这样:
$result = mysql_query("update admin set AD_NAME='".$ad_name."',ADDRESS='".$adaddress."',EMAIL='".$ademail."',CONTACT_NUM='".$adcontact."' where AD_ID=$aid") or die("Error with query: ".$query."<br /> Error message: ".mysql_error());
然而,据说真的能够帮助它将是有用的 - 1错误信息 - 2表格定义
尽管我猜测你的问题可能在查询的WHERE子句中 - 试试它为“......其中AD_ID ='$ aid'”