更新查询奇怪的问题

时间:2009-07-30 23:20:54

标签: php

function updateDemo($demoTitle, $desc, $keyword, 
       $uploadedFile, $clientname, $uploadedImage, $adminName, $demoID)     
{   
    $query = "UPDATE demos SET dmTitle ='sdsdsdsdsd' , dmDesc = '$desc' , 
      dmKey = '$keyword' , dmLink= '$uploadedFile' , client='$clientname' , 
        imageTitle = '$uploadedImage' , userName = '$adminName' 
         WHERE id = '$demoID'";

    $result = mysql_query($query);
    if($result) {
        return 'yes';
    } else {
        return mysql_error();
       }
}

这是上一个问题的更新。我执行了查询,并且我将返回值设置为是,但对于我来说,值似乎没有得到更新。

虽然当我在PHP中查看时,我正在获取更新值...

我试图对标题的值进行硬编码,但似乎也没有更新。

1 个答案:

答案 0 :(得分:4)

尝试检查mysql_affected_rows()返回的内容。如果它不是1,那么你的$ demoID可能是错误的。如果它是1,你可能在数据库中查找错误的位置。

为了安全起见,请考虑切换到支持预准备语句(mysqli,PDO)的数据库接口。

修改

这是使用PDO的代码

function updateDemo($demoTitle, $desc, $keyword, 
       $uploadedFile, $clientname, $uploadedImage, $adminName, $demoID)     
{   

    $query = "UPDATE demos SET dmTitle = ? , dmDesc = ? , 
      dmKey = ? , dmLink= ?, client=? , 
        imageTitle = ? , userName = ?
         WHERE id = ?";

    global $db;
    $stmt = $db->prepare($query);
    $stmt->execute(Array(
        $demoTitle, $desc, 
        $keyword, $uploadedFile, $clientname,
        $uploadedImage, $adminName,
        $demoId
    ));

    return $stmt->rowCount();    
}

这假设你有一个全局变量$ db持有一个PDO连接(有更好的解决方案,但它是最简单的,可能就足够了。)