SELECT和UPDATE不工作 - MySQL

时间:2010-07-17 14:41:19

标签: php select mysql

将照片上传到服务器之后,我想将它保存在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);

我确信我的查询存在一些问题,但我无法弄清楚它是什么。照片肯定会保存到文件夹中。但我只是想在用户数据库中更新其路径以供以后使用。谢谢!

3 个答案:

答案 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'";