私はPHPに非常に慣れていません。準備済み PDO ステートメントを使用したいのですが、うまくいきません。私は簡単な例に従おうとしました
これが私が以下に持っているものです(ええ、範囲、範囲2、およびスペルレンジはすべて同じものを参照していることは知っていますが、MySQLのフィールドを「範囲」と呼んだときにエラーが発生したことに気付いたので、フィールドを「スペルレンジ」に変更しましたデータベース内) - ページに送信された 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 であり、データベースに存在します。ここで私があまりにも不自由でないことを願っていますが、私はその Web サイトの例に従おうとしていました (これは私が見た中で最も単純なもののように思えました)。
<?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();
}
?>