簡體   English   中英

我的更新查詢有什么問題?

[英]whats wrong with my update query?

我有一個MySQL更新查詢的問題,它說成功,但實際上並沒有更新數據庫記錄。

require_once('auth.php');

$host="localhost"; // Host name 
$username="root"; // Mysql username
$password="sysadmin"; // Mysql password 
$db_name="Elite"; // Database name 
$tbl_name="Triage"; // Table name 

mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$Reference=$_GET['Reference'];

$sql="UPDATE Triage SET directly='$directly' WHERE Reference='$Reference'";
$result=mysql_query($sql);

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

您沒有$directly定義$directly ,因此directly字段將使用空字符串進行更新。 請記住,如果字段未更改(即它已經是一個空字符串)並且沒有發生錯誤, mysql_query()仍將返回true

如果在上一頁上定義了$directly ,它將不會自動保留到另一頁。 您必須將其持久保存在$_SESSION或其他介質中,或將其作為$_GET$_POST變量傳遞。


附注:不推薦使用mysql_* ,並且您的代碼容易受到SQL注入攻擊。 考慮使用Prepared Statement和綁定參數升級到PDO或MySQLi。

在編寫任何查詢時,您應首先檢查是否定義了變量,如下所示:

if(isset($directly) && isset($Reference)){
  $sql="UPDATE Triage SET directly='$directly' WHERE Reference='$Reference'";
  $result=mysql_query($sql);
}

並且從php5.5.0開始不推薦使用 mysql_ *擴展,而應該使用MySQLiPDO_MySQL擴展。

暫無
暫無

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

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