2016-04-14 74 views
-2

我認爲我的所有語法正確,但由於某種原因,當執行此代碼時,我的表不會更新。有誰知道爲什麼?當使用PDO更新時,數據沒有在mysql表中更新

這裏是我的PHP頁面的代碼:

<?php 
include_once("connexionMysql.php"); 
    if(isset($_GET['valider'])){ 
     $titreIci=$_GET['titre']; 
     $idIci=(int)$_GET['id']; 
     $preparedStatement = $bdd->prepare("UPDATE AY_albums SET titre=':titreIci' WHERE id=':idIci'"); 
     $preparedStatement->bindValue(':titreIci', $titreIci); 
     $preparedStatement->bindValue(':idIci', $idIci); 
     $preparedStatement->execute(); 

    } 

    header("Location: pageDaccueilAdmin.php"); 
?> 
+3

嘗試沒有周圍的綁定參數引號,例如,'SET滴定值=:titreIci WHERE ID =:idIci「' –

+1

這是一個你沒有[打開例外]的標誌(http://php.net/manual/en/pdo.error-handling.php),否則錯誤會很明顯,例外情況很難忽略,提供有關錯誤的非常有用的信息。 – tadman

+0

刪除參數周圍的引號。 – Tom

回答

0

您應該刪除引號。

取而代之的是:

UPDATE AY_albums SET titre=':titreIci' WHERE id=':idIci' 

這樣做:

UPDATE AY_albums SET titre=:titreIci WHERE id=:idIci 
+0

我試過了,現在它將字段中的數據更新爲空。在導致這個php頁面的前一頁中,我有一些表格,用戶可以修改表格中'titre'的初始值。當用戶點擊提交時,這是否意味着數據沒有正確地通過$ _GET傳輸?作爲新值,我收到了空值? –

+0

想通了謝謝! –

+0

幹得好,很高興幫忙! – MDijkstra