2010-07-17 155 views
0

將照片上傳到服務器後,我想將它保存在MySQL的用戶數據庫中,但由於某種原因,它不起作用。下面是uploader.php代碼:SELECT and UPDATE not working - MySQL

session_start(); 
if(!$_SESSION['userid']) { 
    header("Location: index.php"); 
    exit; 
} 


$con = mysql_connect("host","db","pw"); 
if (!$con) 
    { 
    die('Could not connect: ' .mysql_error()); 
    } 

mysql_select_db("db", $con); 

$sess_userid = mysql_real_escape_string($_SESSION['userid']); 
$query = "SELECT * FROM Members WHERE fldID='$sess_userid' UPDATE Members SET PortraitPath = 'profileportraits/' . '$_FILES[file][name]'"); 
$result = mysql_query($query) or trigger_error(mysql_error().$query); 
$row = mysql_fetch_assoc($result); 

我敢肯定有一些非常錯誤的與我的查詢,但我無法弄清楚它是什麼。照片肯定被保存到文件夾中。但我只是想更新用戶數據庫中的路徑以備後用。謝謝!

回答

2

因爲它已被提及,你不能一次使用這兩個查詢。
但也有一個奇怪的語法:你試圖在MySQL查詢中使用PHP的串聯運算符。
而且你沒有轉義字符串參數 - 非常糟糕!
所以,看起來你需要像

$sess_userid = mysql_real_escape_string($_SESSION['userid']); 
$PortraitPath = mysql_real_escape_string('profileportraits/' . $_FILES['file']['name']); 
$query = "UPDATE Members SET PortraitPath = '$PortraitPath' WHERE fldID='$sess_userid'"; 
+0

上校彈片,非常感謝你,我開始有這個問題,然後就定了!謝謝!! – 2010-07-17 15:28:31

2

你可以做兩個單獨的查詢:

UPDATE Members SET PortraitPath = 'profileportraits/' . '$_FILES[file][name]' 
WHERE fldID='$sess_userid'; 

和:

SELECT * FROM Members WHERE fldID='$sess_userid' 
2

看來你試圖把兩個查詢(SELECT和UPDATE)成一個查詢,這將導致無效的查詢錯誤。

只是想知道爲什麼你需要兩個查詢,因爲你已經知道用戶標識符,並且你想要更新。所有你需要的是更新文件路徑

UPDATE Members SET PortraitPath = 'profileportraits/' . '$_FILES[file][name]' WHERE fldID='$sess_userid';