2011-09-29 100 views
0

我真的很努力想要取得非常简单的东西。phpmysql更新设置,而上传图片

本质上,我有一个名为“galleryimages”的图像表和存储图像的服务器上的位置。我正在尝试做的是在上传过程中覆盖表中给定类别的源字段。

我的代码会将新图像添加到服务器,但由于某种原因不会更新mysql表(但我可以添加新行,尽管我想保留表中的现有数据,只需更改“photo “找到图像的字段)。

我的PHP是:

<?php include 'dbc.php'; page_protect(); 

if(!checkAdmin()) {header("Location: login.php"); 
exit(); 
} 

$host = $_SERVER['HTTP_HOST']; 
$host_upper = strtoupper($host); 
$login_path = @ereg_replace('admin','',dirname($_SERVER['PHP_SELF'])); 
$path = rtrim($login_path, '/\\'); 

foreach($_GET as $key => $value) { 
    $get[$key] = filter($value); 
} 

foreach($_POST as $key => $value) { 
    $post[$key] = filter($value); 
} 
?> 


<?php 
if($_FILES['photo']) 
{ 
    $target = "galleries/test/"; 
    $target = $target . basename($_FILES['photo']['name']); 

    $title = mysql_real_escape_string($_POST['title']); 
    $pic = "galleries/test/" .(mysql_real_escape_string($_FILES['photo']['name'])); 
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
{ 
    mysql_query("update `galleryimages` set (`title`, `photo`) VALUES ('$title', '$pic')") ;  

    echo "Success"; 
} 
else 
{ 
    echo "Failure"; 

} 
} 
?> 

和HTML是:

<form enctype="multipart/form-data" action="addgallery1.php" method="POST"> 
     <table width="100%" border="2" cellpadding="5"class="myaccount"> 
     <tr> 
      <td>Category: </td> 
      <td><select name="title" id="select8"> 
       <option value="Landscape Pots">Landscape Pots</option> 

        </select></td> 
     </tr> 
     <tr> 
      <td>Image: </td> 
      <td><input type="file" name="photo" /></td> 
     </tr> 
     <tr> 
      <td colspan="2"><input type="submit" class="CMSbutton" value="Add" /></td> 
     </tr> 
     </table> 
    </form> 

    </body> 
    </html> 

现在我相当肯定的行存在的问题:

if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
{ 
    mysql_query("update `galleryimages` set (`title`, `photo`) VALUES ('$title', '$pic')") ;  
    echo "Success"; 
} 

,但需要一些帮助,以确定是否确实如此 - 如果是这样我怎么能得到它来更新MySQL表 - 目前PHP回声成功,但没有任何更新到MySQL的“照片”列。

希望这是有道理的,你们中的一位编码天才可以帮助我解决这个问题 - 它花费了我数小时的试验和错误,但仍然无法让它工作!

在此先感谢任何及所有帮助

JD

回答

0

你的MySQL查询是错误的:

update `galleryimages` set `title`='$title', `photo`='$pic' 

但要注意:这将在此表中更新的所有行!您应该添加一个WHERE子句来更新一个特定的行。