2010-09-27 21 views
1

我正在使用uploadify脚本上传文件作为我的学校项目。uploadify和sql查询

//die($_SESSION['ID'].'.....'.$_SESSION['level']); 

if (!empty($_FILES)) { 
    $tempFile = $_FILES['Filedata']['tmp_name']; 
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/'; 
    $filename = substr(md5(time()), 0, 8)."-".$_FILES['Filedata']['name']; 
    $targetFile = str_replace('//','/',$targetPath) . $filename; 
    $time = time(); 
    $ID = $_SESSION['ID']; 

    $sql = mysql_query("INSERT INTO files VALUES(NULL, '$ID', '$targetFile', '$time')"); 

    move_uploaded_file($tempFile,$targetFile); 
    echo "1"; 
} 

在顶部$ _SESSION [“身份证”]工作,但是当我$ SQL中进入,将其返回为0。任何想法,为什么?我已经重新检查了一切。

困惑。

谢谢

+0

它看起来是正确的。存储查询在一个字符串和管道它在发送前对MYSQL_QUERY。然后,再次运行此直接对抗MySQL并验证它不会返回错误。如果它成功插入direc这个问题很可能是你在PHP中连接到MySql的方式。 – clifgriffin 2010-09-27 14:52:07

+0

此外,在if(!empty($ _ FILES)){// here}语句内部echo SESSION ['ID']并让我们看看会发生什么。 – Stewie 2010-09-27 14:55:25

回答

1

似乎SESSION不能很好地工作与uploadify,我scriptData uploadify解决它。

感谢您的所有答案。

0

必须是你的mysql列的类型。

确保您使用的是varchar/text因为'$ID'string:如果你的类型是int(或类似),那么你将有0插入。

0

夫妇在这里错了。您应首先明确命名$ sql中的字段:

$sql = 'insert into tablename (fileid,filename,d_uploaded) values ('.$ID.', \''.$targetFile.'\', '.$time.');'; 

大多数ID字段不会是VARCHAR,它们将是INT。所有VARCHAR都是文本字段,所有INT都是数字。你不会逃离你的INT字段,但你需要转义你的VARCHAR。

也不要插入NULL字段来获取自动增量字段。通过以上述方式执行SQL,您将获得只能对要插入的SQL字段进行编码并且表中其余字段将插入默认值的好处。

0

尝试使用INSERT INTO files SET field=value, field=value, ..记得使用mysql_real_escape_string()消毒用户输入(如$ _REQUEST)(如果你已经启用魔术引号禁用它们,如果你决定使用mysql_real_escape_string()