2010-07-17 102 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';