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

时间:2013-04-22 20:50:21

标签: php mysql

我有一些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 个答案:

答案 0 :(得分:3)

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

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

差异在第2行(我的代码)。

答案 1 :(得分: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()两次。第二次,没有争论,所以它不起作用,这就是你的代码报告的内容。

答案 2 :(得分:1)

我认为这是一个非常相似的问题/答案:What does a successful MySQL DELETE return? How to check if DELETE was successful?

你能尝试它的建议,看看这对你有用吗?

答案 3 :(得分: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'; 
        }
    }