Resumo : este tutorial mostra como consultar dados da tabela SQLite usando PHP PDO.
Para consultar dados de uma tabela, você usa as seguintes etapas:
- Conecte-se ao banco de dados SQLite usando o objeto PDO.
- Use o
query()
método do objeto PDO para executar a instrução SELECT . Oquery()
método retorna um conjunto de resultados como umPDOStatement
objeto. Se quiser passar valores para aSELECT
instrução, você cria oPDOStatement
objeto chamando oprepare()
método do objeto PDO, vincula os valores usando obindValue()
método doPDOStatement
objeto e chama oexecute()
método para executar a instrução. - Faça um loop pelo conjunto de resultados usando o
fetch()
método doPDOStatement
objeto 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 projects
tabela 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 projects
tabela. 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_style
parâmetro do fetch()
método.
\PDO::FETCH_ASSOC
Linguagem de código: PHP ( php )
O fetch_style
parâmetro determina como a linha retornou ao chamador. Isso FETCH_ASSOC
significa 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_OBJ
ou 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 project
objeto 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 SELECT
instrução.
Para fazer isso, usamos o prepare()
método para preparar a SELECT
instrução para execução e passamos o ID do projeto para a instrução usando o execute()
método.
Se a SELECT
instruçã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.