我对 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();
}
?>