2009-07-30 111 views
0
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检查下来,我得到了更新值...

我试图硬编码为标题的值,它似乎也不会得到更新。

+3

“我试图强调价值” - 最好的错字。 – 2009-07-30 23:26:57

回答

4

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

为安全起见,请考虑切换到支持准备语句(mysqli,PDO)的DB接口(如果可能)。

编辑

这是一个使用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();  
} 

代码这是假设你有一个全局变量$分贝拿着PDO连接(有更好的解决方案,但它是最简单的,将可能就够了)。

+0

你可以修改我的代码,并适合mysql_affected_rows和PDO,我将学习新的东西 – Kevin 2009-07-30 23:38:07