尝试使用mysql和php命令连续更新两行BLOB字段时遇到问题。
将BLOB插入行似乎没有问题,这就是我的工作。
$logotemp = $_FILES['eventlogo']['tmp_name'];
$thumbnailtemp = $_FILES['eventthumbnail']['tmp_name'];
$openlogo = fopen($logotemp, 'r');
$openthumbnail = fopen($thumbnailtemp, 'r');
$logo = fread($openlogo, filesize($logotemp));
$logo = addslashes($logo);
$thumbnail = fread($openthumbnail, filesize($thumbnailtemp));
$thumbnail = addslashes($thumbnail);
fclose($openlogo);
fclose($openthumbnail);
所以我有两个表单文件输入,然后读取这些文件,然后设置为变量$ log和$ thumbnail。然后我使用以下命令将其输入DB:
$qry = "INSERT INTO $table (`Event Logo`, `Venue Logo`) VALUES ('$logo', '$thumbnail')";
$result = mysql_query($qry);
if(!$result) {
die(mysql_error());
}
上述工作正常,虽然我已经裁掉了其他也被填满的字段。查询有效,我可以将图像返回到页面,然后将其与该行中的所有其他信息一起显示。
然后我要编辑该行,因此创建了一个名为edit.php的新php文件,该文件是上面使用的php文件的副本,名为new.php。
这意味着表单相同,当显示页面时,每个输入的值都预先填入数据库中的信息,徽标和缩略图显示在上传字段旁边。
如果我然后运行查询来更新行,使用与上面几乎相同的代码,它总是在两个blob中输入一个空值,基本上删除上传的图像。以下是发生的事情:
$id = $_POST['eventid'];
$logotemp = $_FILES['eventlogo']['tmp_name'];
$openlogo = fopen($logotemp, 'r');
$logo = fread($openlogo, filesize($logotemp));
$thumbnailtemp = $_FILES['eventthumbnail']['tmp_name'];
$openthumbnail = fopen($thumbnailtemp, 'r');
$thumbnail = fread($openthumbnail, filesize($thumbnailtemp));
fclose($openlogo);
fclose($openthumbnail);
所以再一次,表单字段仍然被称为eventlogo和eventthumbnail,变量仍然是$ logo和$ thumbnail。然后我使用以下查询来更新行:
$qry = "UPDATE $table SET `Event Name` = '$name', `Date` = '$date', `Time` = '$time', `Venue` = '$venue', `Price` = '$price', `Open To` = '$opento', `Rep Name` = '$repname', `Rep Email` = '$repemail', `Address` = '$address', `Website` = '$website', `Phone` = '$phone', `Description` = '$description', `Event Logo` = '$logo', `Venue Logo` = '$thumbnail' WHERE `Event ID` = '$id'";
我已经留下了这次更新的其他变量。
$result = mysql_query($qry);
if(!$result) {
die(mysql_error());
}
当查询运行时,它将更新我想要的任何其他字段,除了最后的两个图像BLOB字段。考虑到我复制并粘贴了上传字段的代码,读取该字段内容的代码,然后手动输入查询来更新这些字段,我看不出有什么问题。
我错过了一些明显的东西吗?非常感谢任何帮助。
谢谢,编辑
答案 0 :(得分:0)
无法找到我对其进行排序的代码,但我想我最终只是一次更新了一个。