上传图片时设置php mysql更新

时间:2011-09-29 19:03:41

标签: php mysql sql-update

我真的在努力尝试让事情变得非常简单。

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

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

我的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

2 个答案:

答案 0 :(得分:0)

这里有些不对劲

 mysql_query("update `galleryimages` set (`title`, `photo`) VALUES ('$title', '$pic')") ;

它应该像

mysql_query("update `galleryimages` set `title`='$title', `photo`= '$pic'") ;

此处有更多信息:http://dev.mysql.com/doc/refman/5.0/en/update.html

答案 1 :(得分:0)

您的MySQL查询错误:

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

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