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中查看时,我正在获取更新值...
我试图对标题的值进行硬编码,但似乎也没有更新。
答案 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连接(有更好的解决方案,但它是最简单的,可能就足够了。)