php mysql update

时间:2015-05-26 23:11:45

标签: php 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 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');

2 个答案:

答案 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:你的桌子上有一个拼写错误。它应该是“文章”。