Mysql PHP查询运行完美,但返回为false


Mysql PHP Query Runs Perfectly, But returns as false

我有一些mysql_query()s工作得很好,但是如果我把它们放在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'; 
        }
    }

,当我运行它时,它删除了文章,但返回"Could not be deleted"

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

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

差异在第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()两次。第二次,没有参数,所以它不起作用,这就是代码报告的内容。

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

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

你可以试试:

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'; 
        }
    }