在PHP中更新MYSQL表

时间:2012-02-27 18:29:08

标签: php mysql

我正在尝试根据用户是否要在列表中标记项目来更新我的MYSQL表。如果选中了项目A,则取消选中它。如果未选中项目A,请选中它。当我使用我的脚本时,没有任何事情发生,我不知道为什么或什么甚至出错。没有错误被抛出。这是在用户按下检查按钮时运行的。它将它发送到变量id和c。

$ _ 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 个答案:

答案 0 :(得分:2)

我认为您将错误的参数传递给execute。试试这个:

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

答案 1 :(得分:1)

您在预准备语句中绑定:id,但在执行它时,您将传递数组键todo_id。相应地改变它:

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