Php 如何使用PDO获得列的和?

Php 如何使用PDO获得列的和?,php,mysql,pdo,sum,Php,Mysql,Pdo,Sum,php表示无法转换为int: 注意:在第76行的C:\xampp\htdocs\elearning\pages\student\upload.php中,类PDO语句的对象无法转换为int: $userLoggedIn = $_SESSION['username']; $stmt = $conn->prepare( "SELECT s.grade_level, s.section

php表示无法转换为int:

注意:在第76行的C:\xampp\htdocs\elearning\pages\student\upload.php中,类PDO语句的对象无法转换为int:

              $userLoggedIn = $_SESSION['username'];

              $stmt = $conn->prepare(  "SELECT s.grade_level, s.section 
                                        FROM tblusers as u 
                                        JOIN tblstudents as s 
                                        ON u.username = s.username 
                                        WHERE u.username = :username" );
                                        $stmt->execute(array( ':username' => $userLoggedIn ));

              $file = $_FILES['file']['name'];
              $filesize = $_FILES['file']['size'];
              $filepath = "../../assets/uploads/" . $file;

              $filelimit = $conn->prepare("SELECT SUM(f.filesize)
                                           FROM tblfiles AS f 
                                           JOIN tblstudents AS s
                                           ON f.uploader = s.username
                                           WHERE f.uploader = ':username'");
              $filelimit->execute(array(':username'=>$userLoggedIn));

这是第76行:如果($filelimit>1048576)

我想您在从
sum(f.filesize)
获取值时遇到了问题

试着给它一个这样的别名

  SELECT SUM(f.filesize) as filesize

然后通过这个
filesize

$filelimit
是一个
PDOStatement
对象来检索总和。要获取结果集,必须从语句中获取结果集


MrVimes有完整的答案。

$filelimit是一个PDO对象。不是整数。您需要使用
fetch()

然后在第76行的if声明中

if($filelimitvalue > 1048576)

得到一个总数没有区别。您获取数据的方式与获取其他数据的方式完全相同。要了解如何使用PDO获取数据,您必须遵循教程。这不是提问者问题的原因。他们试图读取PDOStatement对象$filelimit,就好像它是查询的实际返回值一样。没问题。在开始使用PDO时,很容易犯错误。如果你满意,记得接受其中一个答案。
if($filelimitvalue > 1048576)