2013-05-29 64 views
0

這是從另一頁面接收上傳圖像的文件。圖像被接收並保存在服務器上(該部分正在工作),查詢不是。我手動將查詢輸入到phpMyAdmin中,並使用虛擬值作爲文件名,它起作用。我把這個虛擬查詢放入這段代碼中,它不起作用。我無法弄清楚我做錯了什麼。一切都在執行,但查詢...我錯過了什麼?

<?php 
$ds = DIRECTORY_SEPARATOR; 
$storeFolder = 'img'; 
if (!empty($_FILES)) { 
    $tempFile = $_FILES['file']['tmp_name'];    
    $targetPath = $_SERVER['DOCUMENT_ROOT']. $ds. $storeFolder . $ds; 
    $targetFile = $targetPath. $_FILES['file']['name']; 
    move_uploaded_file($tempFile,$targetFile); 
    mysql_query("INSERT INTO `photos` (photo_id, file_name) VALUES ('', '".$_FILES['file']['name']."');"); 
} 
?> 
+6

'mysql_error()'PS:你們請給他一個機會來調試它自己 – zerkms

+2

也許mysql_connect()函數 – steven

+0

或者檢查是否請求mysql_query()返回'FALSE',表明發生了錯誤。 –

回答

1

假設photo_id是自動遞增這裏是一些修正你的代碼:

<?php 
$ds = DIRECTORY_SEPARATOR; 
$storeFolder = 'img'; 
if (!empty($_FILES)) { 
    $name = $_FILES['file']['name']; 
    $tempFile = $_FILES['file']['tmp_name'];    
    $targetPath = $_SERVER['DOCUMENT_ROOT']. $ds. $storeFolder . $ds; 
    $targetFile = $targetPath. $_FILES['file']['name']; 
    move_uploaded_file($tempFile,$targetFile); 
    $query = "INSERT INTO photos (photo_id, file_name) VALUES (NULL, '".$name."')"; 
    $result = mysql_query($query); 
    if (!$result) die ("Database access failed: " . mysql_error()); 
} 
?> 

這樣,你應該能夠調試代碼。 現在,如果您需要從Javascript調用中獲得結果,則應該使用AJAX。

入住這裏:

Send a request to a php page and then get back results using ajax

相關問題