关于数据库失败的PHP更新 - 没有错误

时间:2012-12-20 18:17:51

标签: php pdo

我正在尝试使用以下格式更新我的数据库条目:

<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循环。

这看起来像是这样的介绍级别的东西,但我正在看这个一个小时左右没有和mind = blown ...在我的项目上有其他查询(不是更新的)工作正常。

1 个答案:

答案 0 :(得分:6)

在您的情况下,查询可能会失败,因为descreserved word in mySQL.

默认情况下,PDO对其错误消息非常隐秘。有关如何更改内容,请参阅this question