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()2 回呼び出します。2 回目は、引数がないため、機能しません。それがコードで報告されていることです。

于 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 に答える