2012-02-27 82 views
2

我試圖根據用戶是否想要將某個項目標記爲列表來更新我的MYSQL表格。如果項目A被選中,取消選中它。如果項目A未選中,請檢查它。當我在下面使用我的腳本時,什麼都沒有發生,我不知道爲什麼或什麼是錯誤的。沒有錯誤被拋出。這在用戶按下檢查按鈕時運行。它將它發送給變量id和c。更新PHP中的MYSQL表格

$ _GET [ 'C']應始終是1或0,Id是uniqid()

<?php 

require_once('db.php'); 

if(!isset($_GET['id'])){ 
    echo "You didn't supply a item (id)"; 
    header('HTTP/1.1 417 Expectation Failed'); 
    exit(); 
} 

if(!isset($_GET['c'])){ 
    echo "You didn't supply a item (c)"; 
    header('HTTP/1.1 417 Expectation Failed'); 
    exit(); 
} 

if ($_GET['c'] == 0) 
{ 
$query = "UPDATE todo_item 
      SET checked = 1 
      WHERE todo_id = :id"; 
} 
else 
{ 
$query = "UPDATE todo_item 
      SET checked = 0 
      WHERE todo_id = :id"; 
} 

$id = $_GET['id']; 

$statement = $db->prepare($query); 
$statement -> execute(array(
    'todo_id' =>$id, 
)); 

header("Location: index.php"); 

?> 
+2

將''todo_id'=> $ id'更改爲''id'=> $ id'。 – Travesty3 2012-02-27 18:32:32

+0

在$ statement = $ db-> prepare($ query)之後echo $語句;並告訴你得到的,加上我對這部分$ statement - > execute(array( 'todo_id'=> $ id, )); – 2012-02-27 18:34:55

回答

2

我想你傳遞錯誤的參數execute。試試這個:

$statement -> execute(array(
    ':id' =>$id, 
)); 
+0

你說得對。它總是你用自己的眼睛看不到的愚蠢的小東西,因爲你已經看過很多次了。謝謝! – 2012-02-27 18:50:46

1

你在準備好的聲明中結合:id,但是當你執行它,你傳遞數組鍵todo_id。相應地更改:

$statement -> execute(array(
    ':id' =>$id, 
));