为什么我无法更新我的桌子?
$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 Articls SET state ='0'WHER url = 的 'http:/www.example.com/en/news/206698'
通话功能:
updateDB('state',0,'url','http:/www.example.com/en/news/206698','Articls');
答案 0 :(得分:3)
语句执行成功,但如果没有任何记录与语句的WHERE
子句匹配,则不会更新任何记录。使用mysqli_affected_rows
检查是否有任何行已更新。
提示:在网址中http:
之后只有一个斜杠。这可能是个问题。
答案 1 :(得分:0)
这可能是也可能不是原因..您的州列是整数吗?
您正在尝试将'state'列设置为值为0的字符串:
UPDATE Articls SET state = '0' WHERE url = 'http:/www.example.com/en/news/206698'
如果'state'列是一个整数,则不应将该值包装在引号中。
应该是:
UPDATE Articls SET state = 0 WHERE url = 'http:/www.example.com/en/news/206698'
PS:你的桌子上有一个拼写错误。它应该是“文章”。