2013-03-12 79 views
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!!!!!! 
?> 

$連接已啓動並被選中。 $ id被成功選擇,並且$ page = $ id,但它仍然不起作用。 $查詢3似乎很好,但刪除失敗。我不知道錯誤是什麼。感謝您提前提供任何幫助。 -Josh編輯檢查錯誤檢查mysqli刪除

+0

使它更簡單,並編輯「,」 – WackyMole 2013-03-12 17:33:52

回答

0

我不知道是什麼錯誤是。

這是因爲你沒有檢查。每當您準備或執行查詢時,您都需要檢查錯誤。如果遇到錯誤,mysqli中的大部分函數會返回FALSE

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

未能檢查錯誤情況是數據庫程序員犯下的最常見的錯誤之一。

+0

我甚至不知道錯誤日誌。我非常感謝你。我會不斷更新。 – WackyMole 2013-03-12 17:59:53

+0

@WackyMole實際上,'trigger_error()'比error_log() – 2013-03-12 18:36:58

+0

@YourCommonSense更有用,謝謝,我已經在上面的代碼中對它進行了修改。 – 2013-03-12 18:45:25

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\""; 
} 
+0

也許它應該是「==」,但我不認爲if語句是問題。 – WackyMole 2013-03-12 17:26:00

1

你有ID後面一個逗號:

$query3 = "DELETE FROM page WHERE id = {$id}, LIMIT 1"; 
              ^remove this 
+0

完成,但沒有變化。 – WackyMole 2013-03-12 17:34:09

+0

@WackyMole刪除查詢後'mysqli_error($ connection)'給你什麼? – jeroen 2013-03-12 17:47:12

+1

@WackyMole您在工作語句中使用'pages',在非工作語句中使用'page'。這只是一個錯字或者是你的問題的原因之一? – jeroen 2013-03-12 17:51:24

-1

嘗試在您的.htaccess中使用php_flag display_errors on 這將允許您查看和識別php錯誤。

+0

我會查找一些更多的感謝。 – WackyMole 2013-03-12 18:07:44