在将照片上传到服务器后,我希望将其保存在MySQL中的用户数据库中,但由于某种原因,它无法工作。下面是uploader.php:的代码
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);我肯定我的查询有很大问题,但我不知道它是什么。照片肯定会保存到文件夹中。但我只是想在用户数据库中更新它的路径,以便以后使用。谢谢!
发布于 2010-07-17 15:17:22
正如前面提到的,您不能同时使用这两个查询。
但是也有一些奇怪的语法:您试图在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'"; 发布于 2010-07-17 14:43:21
您可以执行两个单独的查询:
UPDATE Members SET PortraitPath = 'profileportraits/' . '$_FILES[file][name]'
WHERE fldID='$sess_userid';和:
SELECT * FROM Members WHERE fldID='$sess_userid'发布于 2010-07-17 14:55:11
您似乎试图将两个查询(SELECT和UPDATE)放入一个查询中,这将导致无效的查询错误。
只是想知道为什么您需要两个查询,因为您已经知道了userid,并且只需要更新。您所需要的只是更新文件路径
UPDATE Members SET PortraitPath = 'profileportraits/' . '$_FILES[file][name]' WHERE fldID='$sess_userid';https://stackoverflow.com/questions/3271920
复制相似问题