好吧,这个让我疯狂。我有一个后端文件上传器,可以将.jpg文件上传到服务器。然后我想将.jpgs的文件名上传到我的数据库。所以当页面加载时,我可以从数据库中添加文件名,图片将显示在页面上。这工作正常,但我也需要能够更新数据库中的文件和文件名。如果用户更改所有文件和文件名称,则一切正常。但是,如果用户只想更改一个或两个文件和文件名,则MySql更新语句最终会使一些变量为空,从而有效地删除记录中的现有文件名,而不是将它们留在单独的文件中。像往常一样,我已经搜索stackoverflow和谷歌之前寻求帮助,我还没有发现任何真正中肯的。这是适用的代码。
session_start();
$id = $_SESSION['id'];
//This is the directory where images will be saved
$target = "imgs/";
// "http://www.surfcup.com/travel_site/images/ ";
$targetlogo = $target . basename( $_FILES['imageLogo']['name']);
$targetpic1 = $target . basename( $_FILES['image1']['name']);
$targetpic2 = $target . basename( $_FILES['image2']['name']);
$targetpic3 = $target . basename( $_FILES['image3']['name']);
$targetpic4 = $target . basename( $_FILES['image4']['name']);
$targetpic5 = $target . basename( $_FILES['image5']['name']);
//This gets all the other information from the form
$logo=($_FILES['imageLogo']['name']);
$pic1=($_FILES['image1']['name']);
$pic2=($_FILES['image2']['name']);
$pic3=($_FILES['image3']['name']);
$pic4=($_FILES['image4']['name']);
$pic5=($_FILES['image5']['name']);
// Connects to Database
mysql_connect("localhost", "surfcup_HotAdmin","password") or die ('I cannot connect to the database because: ' .mysql_error());
mysql_select_db("surfcup_hotels") or die('I cannot connect to the database because: .mysql_error());
$query="UPDATE Hotels
SET
hotel.imageLogo = '".$logo."',
hotel.image1 = '".$pic1."',
hotel.image2 = '".$pic1."',
hotel.image3 ='".$pic1."',
hotel.image4 = '".$pic1."',
hotel.image5 = '".$pic1."'
WHERE Hotels.id='".$id."'";
mysql_query($query) or die ('Error Updating Hotel '.mysql_error());
//stuff to upload the files below
?>我想我需要检查变量是否为空,并且不知何故不加载它们或者停止数据库接受空条目。然而,后者虽然会让用户在创建记录时添加6个文件。如果他们只有5或3呢?我似乎无法弄清楚我将如何检查变量是否为空,并只在UPLOAD语句中上载带有文件名的变量。再次感谢您的帮助。
戴夫