0

我对 PHP 非常陌生。我想使用准备好的 PDO 语句,但我的不起作用。我试图按照一个简单的例子

这是我下面的内容(是的,我知道 range、range2 和 spellrange 都指的是同一个东西,但我意识到当我在 MySQL 中调用该字段时出现错误“range”,所以我将字段更改为“spellrange”在数据库中) - 我对发送到页面的 POST 内容进行了回显(现在已删除回显),并且我成功获取了所有 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();
    }
?>
4

1 回答 1

0

'description'对于初学者,您在andwhere子句之后有额外的右括号。

于 2012-12-10T05:39:40.750 回答