File_exist在Ubuntu/PHP中显示错误


File_exist shows error in Ubuntu/PHP

我是Linux/Ubuntu的新手,所以如果我犯了任何愚蠢的错误,请原谅我。
我的代码在XP中工作得很好,但在Ubuntu 11.04中不行(相同的PHP/MySQL版本)

<?php
  if (!isset($_SESSION['uid'])) {
    header('Location:index.php');
    exit;
  } else {
    if (file_exists("profile_pic/".$_SESSION['uid'].".jpg")) {
      echo '<a href="'.$SitePath.'profile.php?id='.$_SESSION['uid'].'"><img src="'.$SitePath.'profile_pic/'.$_SESSION['uid'].'.jpg" alt="'.$_SESSION['name'].'" title="Me" border="0"/></a>';
    } else {
  echo '<a href="'.$SitePath.'profile.php?id='.$_SESSION['uid'].'"><img src="'.$SitePath.'profile_pic/nopic.jpg" alt="'.$_SESSION['name'].'" title="Me" border="0" /></a>';
  }  
?>

如果存在文件名为$_SESSION['uid'].".jpg"的文件,则显示该文件,否则显示默认图像

我得到的错误

可捕获的致命错误:mysqli_stmt类的对象无法转换为字符串

您没有显示任何数据库操作,但最有可能的情况是:

$_SESSION['uid'] = mysqli_query("SELECT uid FROM ...");

初始化会话数据的位置。这是不正确的。查询函数返回一个语句句柄,您可以从中获取数据。在伪代码中,它应该是:

$result = mysqli_query(...);
$row = $result->fetch();
$_SESSION['uid'] = $row['uid'];

尝试print_r ($ _SESSION("uid"))它会给你一个提示,很可能就像Marc B说的