我是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();
}
?>
答案 0 :(得分:0)
对于首发,您在'description'
和where
子句后有额外的右括号。