1

我有一些 mysql_query() 可以正常工作,但是如果我将它们放在 if else 语句中,它们会返回 false。任何想法?

        public function delete_post() {

        $id = $_GET['post_id'];

        mysql_query("DELETE FROM posts WHERE post_id='$id' LIMIT 1");

        if ( !mysql_query() ) {
            echo ('Could not be Deleted');
        } else { 
            echo 'Deleted Successfully'; 
        }
    }

当我运行它时,它会删除帖子,但返回“无法删除”

4

4 回答 4

3

您正在使用空 SQL 语句运行查询,这不是正确的 SQL。尝试这个。

$result = mysql_query("DELETE ...");
if (!$result) {
    echo ('Could not be Deleted');
} else {
    echo 'Deleted Successfully';
}

区别在第 2 行(我的代码)。

于 2013-04-22T20:53:32.510 回答
2

注意:不推荐使用 mysql_query()。你真的应该使用PDO::query代替。

如果您仍想使用它,请执行以下操作:

$result = mysql_query("DELETE FROM posts WHERE post_id='$id' LIMIT 1");
if (!$result) 
{
    echo ('Could not be Deleted');
}

解释:

在您的原始代码中,您调用mysql_query()了两次。第二次,没有参数,所以它不起作用,这就是你的代码所报告的。

于 2013-04-22T20:53:18.640 回答
1

我认为这是一个非常相似的问题/答案:成功的 MySQL DELETE 会返回什么?如何检查 DELETE 是否成功?

你能试试它的建议,看看它是否对你有用吗?

于 2013-04-22T20:54:59.163 回答
0

你可以试试:

public function delete_post() {

        $id = $_GET['post_id'];

        $query = mysql_query("DELETE FROM posts WHERE post_id='$id' LIMIT 1");

        if ( !$query ) {
            echo ('Could not be Deleted');
        } else { 
            echo 'Deleted Successfully'; 
        }
    }
于 2013-04-22T20:54:06.080 回答