2015-05-26 33 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:你在你的表的名称拼写错误。它应该是“文章”。