帖子不会从数据库中删除

时间:2012-12-04 14:18:19

标签: php sql database sqlite sql-delete

在我的应用程序中,我正在使用SQLite3,而现在我正在努力让DELETE工作。下面的代码对我来说似乎很好,我已经检查过$ producerId是否包含Id,当然存在于数据库中。

但是,我从查询执行中得到了错误,并且帖子没有被删除。

我做错了什么?

public function deleteProducer($producerId) {

    $sql = "DELETE FROM 'producers' WHERE 'producerid' = $producerId";

    $result = $this->m_db->exec($sql);

    return $result;  // <- 0 (fails)
}

数据库结构:

Table: producers
Fields: id(INTEGER PRIMARY KEY), producerid(INT), name(TEXT), address(TEXT), zipcode(INT), town(TEXT), url(TEXT), imgurl(TEXT)

1 个答案:

答案 0 :(得分:1)

在SQL中,单引号用于字符串。

当上下文中的含义清楚时(例如表名),SQLite将接受字符串而不是标识符,但在WHERE条件下,字符串允许的,所以'producerid'将被解释为字符串。

对于标识符,请使用双引号:

$sql = 'DELETE FROM "producers" WHERE "producerid" = $producerId';