2010-09-27 60 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()