SQLite PHP: consultando dados

Resumo : este tutorial mostra como consultar dados da tabela SQLite usando PHP PDO.

Para consultar dados de uma tabela, você usa as seguintes etapas:

  1. Conecte-se ao banco de dados SQLite usando o objeto PDO.
  2. Use o query()método do objeto PDO para executar a instrução SELECT . O query()método retorna um conjunto de resultados como um PDOStatementobjeto. Se quiser passar valores para a SELECTinstrução, você cria o PDOStatementobjeto chamando o prepare()método do objeto PDO, vincula os valores usando o bindValue()método do PDOStatementobjeto e chama o execute()método para executar a instrução.
  3. Faça um loop pelo conjunto de resultados usando o fetch()método do PDOStatementobjeto e processe cada linha individualmente.

Veja o getProjects()método a seguir.

    /**
     * Get all projects
     * @return type
     */
    public function getProjects() {
        $stmt = $this->pdo->query('SELECT project_id, project_name '
                . 'FROM projects');
        $projects = [];
        while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
            $projects[] = [
                'project_id' => $row['project_id'],
                'project_name' => $row['project_name']
            ];
        }
        return $projects;
    }Linguagem de código:  PHP  ( php )

Este método recupera todos os projetos da projectstabela usando a instrução SELECT a seguir.

SELECT project_id,
       project_name
  FROM projects;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Primeiro, chamamos o query()método do objeto PDO para consultar os dados da projectstabela. O query()método retorna o objeto PDOStatement, que é$stmt.

Segundo, chamamos o método fetch() do objeto PDOStatement para recuperar a próxima linha do conjunto de resultados. Passamos o seguinte valor para o fetch_styleparâmetro do fetch()método.

\PDO::FETCH_ASSOCLinguagem de código:  PHP  ( php )

O fetch_styleparâmetro determina como a linha retornou ao chamador. Isso FETCH_ASSOCsignifica que o fetch() método retornará um array indexado pelo nome da coluna.

Terceiro, coletamos dados dentro do loop while e retornamos o resultado como uma matriz associativa de projetos.

Caso você queira que o método fetch() retorne a linha no conjunto de resultados como um objeto, você pode usar o \PDO::FETCH_OBJou pode usar o  fetchObject()método.

O getProjectObjectList()método a seguir retorna uma lista de objetos de projeto.

     /**
     * Get the project as an object list
     * @return an array of Project objects
     */
    public function getProjectObjectList() {
        $stmt = $this->pdo->query('SELECT project_id, project_name '
                . 'FROM projects');

        $projects = [];
        while ($project = $stmt->fetchObject()) {
            $projects[] = $project;
        }

        return $projects;
    }Linguagem de código:  PHP  ( php )

Observe que os nomes das propriedades do objeto correspondem aos nomes das colunas no conjunto de resultados. Por exemplo, você pode acessar os nomes das propriedades do projectobjeto como:

$project->project_id;
$project->project_name;Linguagem de código:  PHP  ( php )

Veja o getTasks()método a seguir.

    /**
     * Get tasks by the project id
     * @param int $projectId
     * @return an array of tasks in a specified project
     */
    public function getTaskByProject($projectId) {
        // prepare SELECT statement
        $stmt = $this->pdo->prepare('SELECT task_id,
                                            task_name,
                                            start_date,
                                            completed_date,
                                            completed,
                                            project_id
                                       FROM tasks
                                      WHERE project_id = :project_id;');

        $stmt->execute([':project_id' => $projectId]);

        // for storing tasks
        $tasks = [];

        while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
            $tasks[] = [
                'task_id' => $row['task_id'],
                'task_name' => $row['task_name'],
                'start_date' => $row['start_date'],
                'completed_date' => $row['completed_date'],
                'completed' => $row['completed'],
                'project_id' => $row['project_id'],
            ];
        }

        return $tasks;
    }Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Neste método, obtemos todas as tarefas associadas a um projeto, portanto precisamos passar o id do projeto para a SELECTinstrução.

Para fazer isso, usamos o  prepare()método para preparar a SELECTinstrução para execução e passamos o ID do projeto para a instrução usando o execute()método.

Se a SELECTinstrução retornar um valor, por exemplo, quando usarmos uma função agregada como COUNT , AVG , SUM , MIN , MAX , etc.

Para obter o valor, você usa o fetchColumn()método que retorna uma única coluna da próxima linha em um conjunto de resultados.

Consulte o getTaskCountByProject() método a seguir que retorna o número de tarefas em um projeto especificado.

    /**
     * Get the number of tasks in a project
     * @param int $projectId
     * @return int
     */
    public function getTaskCountByProject($projectId) {

        $stmt = $this->db->prepare('SELECT COUNT(*) 
                                    FROM tasks
                                   WHERE project_id = :project_id;');
        $stmt->bindParam(':project_id', $projectId);
        $stmt->execute();
        return $stmt->fetchColumn();
    }Linguagem de código:  PHP  ( php )

Neste tutorial, mostramos várias maneiras de consultar dados no banco de dados SQLite usando PHP PDO.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *