2012-12-20 46 views
0

我試圖用這種形式來更新我的數據庫條目:PHP更新 - 沒有錯誤

<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 ...我的項目上有其他查詢(而不是更新的),它們工作正常。

+2

我們可以假設'UPATE'是一個錯字,而您在真正的查詢中使用'UPDATE'嗎? – dnagirl

+2

你採用了你生成的SQL並試圖直接對數據庫運行它嗎?此外,可能是一個錯誤產生的地方,你只是沒有看到它。 – ficuscr

+0

@ficuscr:因爲它是一個準備好的查詢,你不能真正看到的東西是什麼樣子,一旦值在塗膠 – dnagirl

回答

6

在你的情況下,查詢可能失敗,因爲descreserved word in mySQL.

PDO可以大約在默認情況下其錯誤消息非常隱祕。請參閱this question瞭解如何更改。

+0

是的好友。是的。 –