-1

如果上传了新文件或现有文件,我在下面有一个 php 脚本,它会在其中添加一个数据库行:

<?php
session_start();
...//connect to DB

$result = 0;
if( file_exists("ImageFiles/".$_FILES['fileImage']['name'])) {
    $imagesql = "INSERT INTO Image (ImageFile) 
    VALUES ('ImageFiles/".mysql_real_escape_string($_FILES['fileImage']['name'])."')";

    mysql_query($imagesql);
} else {
    $imagesql = "INSERT INTO Image (ImageFile) 
    VALUES ('ImageFiles/".mysql_real_escape_string($_FILES['fileImage']['name'])."')";
    mysql_query($imagesql);
}
mysql_close();
?>

<script language="javascript" type="text/javascript">window.top.stopImageUpload(<?php echo $result ? 'true' : 'false'; ?>, '<?php echo $_FILES['fileImage']['name'] ?>');</script>

但问题是我想在 $result = 2 时在 else 语句下方添加一个 if 语句,以便删除数据库行。当我尝试这个时,它不会在上传新文件或现有文件后插入数据库行。

if ($result = 2){
  $imagecancelsql = "DELETE FROM Image 
  WHERE ImageFile = 'ImageFiles/". mysql_real_escape_string($_FILES['fileImage']['name'])."'";
  mysql_query($imagecancelsql);
}

所以我的问题是:我应该如何将上面的 if 语句放在 php 脚本中,以便它执行必要的数据库更新?

4

1 回答 1

1

你没有在任何地方定义你的 $result 变量,所以 if 永远不会被执行。无论如何,你应该把它放在那里:

<?php
session_start();
...//connect to DB

$result = 0;
if( file_exists("ImageFiles/".$_FILES['fileImage']['name'])) {
    $imagesql = "INSERT INTO Image (ImageFile) 
    VALUES ('ImageFiles/".mysql_real_escape_string($_FILES['fileImage']['name'])."')";

    mysql_query($imagesql);
} else {
    $imagesql = "INSERT INTO Image (ImageFile) 
    VALUES ('ImageFiles/".mysql_real_escape_string($_FILES['fileImage']['name'])."')";
    mysql_query($imagesql);
}

if ($result == 2){
  $imagecancelsql = "DELETE FROM Image 
  WHERE ImageFile = 'ImageFiles/". mysql_real_escape_string($_FILES['fileImage']['name'])."'";
  mysql_query($imagecancelsql);
}

mysql_close();
?>
于 2012-05-15T18:06:06.750 回答