Php PDO数据库未向数据库添加项

Php PDO数据库未向数据库添加项,php,mysql,pdo,Php,Mysql,Pdo,我刚接到一份学校作业,要练习PDO。问题是我似乎让它连接到数据库,但无法让它在数据库中插入或计数行。这可能是一个重复的问题。我试图寻找答案,但可能只是问了错误的问题 <?php include("db.class.php"); class uppClass extends Database { function __construct() { parent::__construct(); } public function countUse

我刚接到一份学校作业,要练习PDO。问题是我似乎让它连接到数据库,但无法让它在数据库中插入或计数行。这可能是一个重复的问题。我试图寻找答案,但可能只是问了错误的问题

<?php
 include("db.class.php");

 class uppClass extends Database {

    function __construct() {
        parent::__construct();
    }

    public function countUsers() {
        $stmt = $this->connection->prepare("SELECT * FROM users LIMIT 500");
        $stmt->execute();
        return count( $stmt->fetchAll(PDO::FETCH_ASSOC) );
    }

}
?>

下一个类处理pdo连接

<?php
include("db-details.php");

class Database {

    public $connection;

    /**
     * Opens a connection to the DB
     */

    public function __construct() {
        try {
            $this->connection = new PDO("mysql:host=$this->DATABASE_ADDRESS;dbname=$this->DATABASE_NAME;", DATABASE_USERNAME, DATABASE_PASSWORD);
            $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
            $this->connection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
        } catch (PDOException $e) {
            echo 'Connection failed: ' . $e->getMessage();
        }
    } 

}
?>

要使用PDO计算行数,您可以使用此选项

public function countUsers() {
    $stmt = $this->connection->prepare("SELECT * FROM users LIMIT 500");
    $stmt->execute();
    $stmt->fetchAll(PDO::FETCH_ASSOC); 
    return $stmt->rowCount();
}

这些课程是作业的一部分吗?你可以不用它们,只用PDO吗?我们确实让那些特定的班级做家庭作业,但如果没有其他事情,我想可以用其他方式来做,只是为了得到一些东西。我建议先用原始PDO,因为很难同时学习两件事。好的,谢谢你的快速回复。我会这样做。你能用原始PDO做一个插入吗?你需要帮助吗?在计数时,不应选择要计数的行。改为执行
选择count(*)
查询。我写了一篇文章,你会发现它很有用。