1
<?php

    if (intval($_GET['page']) == 0) {
        redirect_to("staff.php");
    }

    $id = mysqli_prep($_GET['page']);



        $query3 = "DELETE FROM page WHERE id = {$id}, LIMIT 1";
        $result = mysqli_query($connection, $query3);
        if (mysqli_affected_rows($connection) == 1) {
            redirect_to("staff.php");
        } else {
            // Deletion Failed

            echo $id ."<br />" . $query3 . "<br />" . $result . "<p>Subject
           deletion failed.</p>";
            echo "<p>" . mysqli_error() . "</p>";
            echo "<a href=\"staff.php\">Return to Main Page</a>";
        }
      //  Keep on working Edit:2#
      mysqli_query($connection, "DELETE FROM pages WHERE id = 11 ");
     //- Works 
     Edit 3# 
       $id = $_GET['page'];
        echo "<p>" . $id ."</p>";
            $query3 ="DELETE FROM pages WHERE id = {$id} ";
                    mysqli_query($connection,$query3 );
                    // Still Works  -- YaY for working backwards
   // Edit #4 By "now it might be obvious what my error was "pages" not "page"
       // Thanks everyone - And thank you for telling me about the error page
        // My defense - newbie- Anyway Lesson from this - working backwards 
        // Takes a while, Error checking Fast!!!!!!
?>

$ connectionが開始され、選択されます。$ idは正常に選択され、$ page = $ idですが、それでも機能しません。$ query 3は問題ないようですが、削除に失敗しました。エラーが何であるかわかりません。よろしくお願いします。-ジョシュ編集チェックエラーチェック

4

4 に答える 4

1

IDの後にコンマがあります。

$query3 = "DELETE FROM page WHERE id = {$id}, LIMIT 1";
                                            ^ remove this
于 2013-03-12T17:15:52.797 に答える
0

エラーが何であるかわかりません。

チェックしなかったからです。クエリを準備または実行するたびに、エラーをチェックする必要があります。mysqliのほとんどの関数はFALSE、エラーが発生した場合に戻ります。

$result = mysqli_query($connection, $query3);
if ($result === false) {
    trigger_error(mysqli_error($connection), E_USER_ERROR);
    header("Location: /error.php");
    exit;
}

エラーケースのチェックの失敗は、データベースプログラマーが犯した最も一般的な失敗の1つです。

于 2013-03-12T17:46:53.173 に答える
0
  if ($page == get_page_by_id($id)) {

==比較のため

===値とキャストを比較する

$val = true;
if ($val === true) {
    echo "\$val is bool(true)";
}

if ($val == "true") {
    echo "\$val matches value";
}


if ($val === "true") {
// this will never happen
} else {
echo "\$val doesnt === \"true\"";
}
于 2013-03-12T17:12:37.403 に答える
-1

.htaccessで使用php_flag display_errors onしてみてください。これにより、phpエラーを確認して特定できます。

于 2013-03-12T18:00:43.787 に答える