[英]why my cannot edit/update database using PHP?
這是我的代碼。 在此代碼中,當您使用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>
我曾多次試圖解決這個問題,但它仍然存在同樣的問題。 你能幫助我嗎?
嘗試用下面列出的標簽替換你當前的標簽可能會有所幫助。
<form name="edit" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
為了幫助解決錯誤:
<?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";
}
?>
並嘗試將您的代碼更改為PDO,如下所示:
<?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();
}
}
?>
您絕對應該考慮轉移到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'”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.