将照片上传到服务器之后,我想将它保存在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);
我确信我的查询存在一些问题,但我无法弄清楚它是什么。照片肯定会保存到文件夹中。但我只是想在用户数据库中更新其路径以供以后使用。谢谢!
答案 0 :(得分:2)
您可以执行两个单独的查询:
UPDATE Members SET PortraitPath = 'profileportraits/' . '$_FILES[file][name]'
WHERE fldID='$sess_userid';
和
SELECT * FROM Members WHERE fldID='$sess_userid'
答案 1 :(得分:2)
您似乎尝试将两个查询(SELECT和UPDATE)放入一个查询中,这将导致无效的查询错误。
只是想知道为什么你需要两个查询,因为你已经知道了用户ID并且你想要的只是更新。您所需要的只是更新文件路径
UPDATE Members SET PortraitPath = 'profileportraits/' . '$_FILES[file][name]' WHERE fldID='$sess_userid';
答案 2 :(得分: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'";