PDO准备了更新记录产生简单错误的声明?

时间:2012-12-10 05:36:04

标签: php mysql pdo

我是PHP的新手。我想使用准备好的PDO语句,但我的工作没有用。 I tried to follow a simple example at

这是我下面的内容(是的,我知道范围,范围2和拼写范围都是指同一个东西,但我意识到当我在MySQL“范围”中调用该字段时出现错误,所以我将字段更改为'spellrange'在数据库中) - 我对发送到页面的POST内容做了回应(echo现已删除),我成功获取所有POST信息 - 这是错误:

  

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') WHERE id='747')' at line 2

id = 747是正确的。这是我从上一页点击的ID,它确实存在于数据库中。 希望我在这里不会太蹩脚,但我试图效仿该网站上的例子(这似乎是我看到的最简单的一个)。

    <?PHP
// MAIN PROCESSING SECTION
    $id = $_POST['id'];
    $level = $_POST['level'];
    $specialty = $_POST['specialty'];
    $name = $_POST['name'];
    $cost = $_POST['cost'];
    $bcu = $_POST['bcu'];
    $range2 = $_POST['range'];
    $prereq = $_POST['prereq'];
    $description = $_POST['description'];

try {
$sql = "UPDATE tblspells 
    SET level=?, specialty=?, name=?, cost=?, spellrange=?, basecostuses=?,  prereq=?, description=?) WHERE id=?)";
    $q = $pdo->prepare($sql);
    $q->execute(array($level, $specialty, $name, $cost, $range2, $bcu, $prereq, $description, $id));
}
    catch(PDOException $e)
    {
        echo "Error ---------- " . $e->getMessage();
    }
?>

1 个答案:

答案 0 :(得分:0)

对于首发,您在'description'where子句后有额外的右括号。