2016-04-14 119 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