次のフォームでデータベース エントリを更新しようとしています。
<form method="post" action="inc/update.php">
<?php foreach ($links as $row) {
?>
<div class="btn_admin">
<p>
<label>Titulo</label>
<input type="text" name="title[]" value="<?php echo $row["desc"] ?>">
</p>
<p>
<label>Url</label>
<input type="text" name="url[]" value="<?php echo $row["url"] ?>">
<input type="hidden" name="id[]" value="<?php echo $row["id"] ?>" />
</p>
</div>
<?php }
?>
<input type="submit" name="submit" value="Update Links" />
</form>
私のupdate.phpファイルで:
if ($_SERVER["REQUEST_METHOD"] == "POST"
&& $_POST["submit"] == "Update Links") {
include_once 'db.php';
$db = new PDO(DB_INFO, DB_USER, DB_PASS);
foreach($_POST['id'] as $id ) {
$title=$_POST["title"][$id-1];
$url=$_POST["url"][$id-1];
$sql = "UPATE index_links
SET desc=?, url=?
WHERE id=?";
$stmt = $db->prepare($sql);
$stmt->execute(array($title, $url, $id-1));
$stmt->closeCursor();
}
}
$title と $url をループして、すべてが正しく「取得」されていますが、クエリはエラーなしで何らかの形で失敗しています。
私は間違ったクエリ構文 (上記の例のクエリのように - 「UPATE」) をいじってみましたが、エラーはまったくありません...そして、はい、foreach ループがアクセスされています。
これは入門レベルのもののように思えますが、私はこれを 1 時間ほど見ていますが、いいえ、気が狂っています...私のプロジェクトには、正常に動作している他のクエリ (UPDATE クエリではない) があります。