2015-05-26 78 views
0

爲什麼我不能更新我的表?問題與MySQL的MySQL更新

$conn = $this->connectDB(); 
$where = " WHERE ".$tkey." = '".mysqli_real_escape_string($conn, trim($tvalue))."'" ; 
$q = $key." = '".mysqli_real_escape_string($conn, trim($value))."'"; 
echo $sql = "UPDATE ".$table." SET ".$q.$where; 

if ($conn->query($sql) === TRUE) { 
    echo "Record updated successfully"; 
} else { 
    echo "Error updating record: " . $conn->error; 
} 

$this->disconnectDB($conn); 

它返回「記錄更新成功」,但當我檢查數據庫沒有變化。

回波的$sql

UPDATE SET Articls狀態= '0' 其中URL = 的 'http:/www.example.com/en/news/206698'

呼叫功能:

updateDB('state',0,'url','http:/www.example.com/en/news/206698','Articls'); 
+0

嘗試更改它'UPDATE Articls SET state ='0'WHERE URL LIKE'http:/ www.example.com/en/news/206698''。直接在db中執行並檢查updation是否發生? –

+0

沒有成功 - 相同的錯誤 –

+1

我問它運行在db表中不是通過php代碼 –

回答

3

該語句執行成功,但沒有記錄將被更新,如果它們都不匹配狀態的WHERE子句ENT。使用mysqli_affected_rows檢查是否更新了任何行。

提示:在url中你只有一個斜槓http:。這可能是問題。

0

這可能是也可能不是原因..你的狀態列是一個整數嗎?

你展示你試圖把「狀態」欄中的數值爲0設置爲一個字符串:

UPDATE Articls SET state = '0' WHERE url = 'http:/www.example.com/en/news/206698' 

如果你的「狀態」一欄是一個整數,你不應該用引號括值。

它應該是:

UPDATE Articls SET state = 0 WHERE url = 'http:/www.example.com/en/news/206698' 

PS:你在你的表的名稱拼寫錯誤。它應該是「文章」。