0

次のフォームでデータベース エントリを更新しようとしています。

<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 クエリではない) があります。

4

1 に答える 1

6

あなたの場合、 はmySQL の予約語でdescあるため、クエリはおそらく失敗します。

デフォルトでは、PDO はそのエラー メッセージについて非常に秘密にできます。それを変更する方法については、この質問を参照してください。

于 2012-12-20T18:28:55.113 に答える