2012-11-20 84 views
-2

我使用上传的图像文件,在上传过程时,工作路径以及下面的代码,但是当文件路径插入到数据库表字段我得到错误PHP数据库文件上传错误

uploader.php

<?php 
$db = mysql_connect('localhost', 'root', '') or die('Could not connect:' . mysql_error()); 
mysql_select_db('fileupload4',$db); 
$allowed_filetypes = array('.jpg','.gif','.bmp','.png'); 
$max_filesize = 10000000; 
$upload_path = 'images/'; 
$filename = $_FILES['userfile']['name']; 
$extension = substr($filename, strpos($filename,'.'), strlen($filename)-1); 
if(!in_array($extension , $allowed_filetypes)) { 
    die('The file you attempted to upload is not allowed.'); 
} 
if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize) { 
    die('The file you attempted to upload is too large.'); 
} 
if(!is_writable($upload_path)) { 
    die('You cannot upload to the specified directory, please CHMOD it to 777.'); 
} 
if(move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_path.$filename)) { 
    echo 'Your file upload was successful, view the file <a href="'.$upload_path.$filename.'" title="Your File">Here</a>'; 
} else { 
    echo 'There was an error during the file upload. Please try again.'; // It failed 
} 
$sql = "UPDATE students SET image = '".$upload_path."' WHERE id = 'student_id'"; 
mysql_query($sql) OR die(mysql_error()); 
?> 

这是任何帮助上传图像

Unknown column 'id' in 'where clause' 

感谢时,我得到什么错误...

我的表结构

CREATE TABLE IF NOT EXISTS `students` (
    `student_id` int(11) NOT NULL AUTO_INCREMENT, 
    `image` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', 
    PRIMARY KEY (`student_id`), 
    KEY `student_id` (`student_id`), 
    KEY `image` (`image`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 
+3

见这种情况whenn你只要拿起一个代码不理解它,它的我的代码:对正在使用的ID,你是不是,所以它显示你这个错误 –

+1

看起来像你的SQL语法错误。我想你想要的东西像“WHERE student_id ='{valueFromInput}'”;“ –

回答

0

它看起来像行

$sql = "UPDATE students SET image = '".$upload_path."' WHERE id = 'student_id'"; 

需要改变,以

$sql = "UPDATE students SET image = '".$upload_path."' WHERE student_id = 'student_id'"; 

,因为你没有指定的列ID,但你有一个名为student_id数据

+0

我试过这个查询......现在没有更多的错误,但仍然不存储图像路径我的图像字段,为什么? – mans

+0

它看起来像您在数据库中存储的上传路径只是'images /',并且您永远不会创建存储在数据库中的完整路径。 –

+0

你会解释如何打包完整路径。?因为这是我第一次尝试php文件上传功能....有任何例子。? – mans

1

检查你的MYSQL表结构,显然列id不存在。

也许发布你的SQL表吗?

+0

CREATE TABLE IF NOT EXISTS'students'( 'student_id' int(11)NOT NULL AUTO_INCREMENT, 'image' varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT'', PRIMARY KEY('student_id'), KEY'student_id'('student_id'), KEY'image'('image') )ENGINE = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 1; – mans

1

由于查询你发布在这里,似乎你没有使用id列(正如我以前在评论中已经告诉过你的那样),正如@saratis告诉你的,所以你的查询应该是

UPDATE students SET image = '".$upload_path."' WHERE student_id= 'pass your id here'; 
+0

我固定的查询错误,但仍然我的图像路径没有存储图像字段...任何想法。? – mans