SQLite PHP: Inserindo Dados

Resumo : neste tutorial mostraremos como usar PHP PDO para inserir dados em tabelas SQLite.

Usaremos a tabela de projetos e tarefas que criamos no tutorial de criação de tabela .

Para inserir dados em uma tabela, siga estas etapas:

  1. Conecte-se ao banco de dados SQLite criando uma nova instância PDO com o caminho para o arquivo do banco de dados SQLite.
  2. Componha uma instrução INSERT . Se você deseja fornecer os valores para a INSERTinstrução, use os espaços reservados nomeados no formulário :nameque  nameé o parâmetro para o qual você fornecerá o valor.
  3. Chame o prepare()método do objeto PDO para preparar a INSERTinstrução para execução. Este método retorna um PDOStatementobjeto.
  4. Vincule valores aos parâmetros chamando o bindValue()método do PDOStatementobjeto.
  5. Execute a instrução chamando o execute()método do PDOStatementobjeto.
  6. Caso a tabela tenha uma coluna de incremento automático gerada como chave primária , você pode obter o id inserido chamando o lastInsertId()método do objeto PDO.

A SQLiteInsertclasse a seguir possui dois métodos para inserir dados em tabelas. O insertProject()método insere um novo projeto na projectstabela e o insertTask()método insere uma nova tarefa na taskstabela.

<?php

namespace App;

/**
 * PHP SQLite Insert Demo
 */
class SQLiteInsert {

    /**
     * PDO object
     * @var \PDO
     */
    private $pdo;

    /**
     * Initialize the object with a specified PDO object
     * @param \PDO $pdo
     */
    public function __construct($pdo) {
        $this->pdo = $pdo;
    }

    /**
     * Insert a new project into the projects table
     * @param string $projectName
     * @return the id of the new project
     */
    public function insertProject($projectName) {
        $sql = 'INSERT INTO projects(project_name) VALUES(:project_name)';
        $stmt = $this->pdo->prepare($sql);
        $stmt->bindValue(':project_name', $projectName);
        $stmt->execute();

        return $this->pdo->lastInsertId();
    }

    /**
     * Insert a new task into the tasks table
     * @param type $taskName
     * @param type $startDate
     * @param type $completedDate
     * @param type $completed
     * @param type $projectId
     * @return int id of the inserted task
     */
    public function insertTask($taskName, $startDate, $completedDate, $completed, $projectId) {
        $sql = 'INSERT INTO tasks(task_name,start_date,completed_date,completed,project_id) '
                . 'VALUES(:task_name,:start_date,:completed_date,:completed,:project_id)';

        $stmt = $this->pdo->prepare($sql);
        $stmt->execute([
            ':task_name' => $taskName,
            ':start_date' => $startDate,
            ':completed_date' => $completedDate,
            ':completed' => $completed,
            ':project_id' => $projectId,
        ]);

        return $this->pdo->lastInsertId();
    }

}Linguagem de código:  PHP  ( php )

No insertTask()método, em vez de vincular valores, passamos os valores inseridos como um array para o execute()método.

Usamos o seguinte código no arquivo index.php para inserir projetos e suas tarefas associadas na tabela de projetos e tarefas.

Demonstração de inserção SQLite PHP
<?php

require 'vendor/autoload.php';

use App\SQLiteConnection;
use App\SQLiteInsert;

$pdo = (new SQLiteConnection())->connect();
$sqlite = new SQLiteInsert($pdo);

// insert a new project
$projectId = $sqlite->insertProject('PHP SQLite Demo');
// insert some tasks for the project
$sqlite->insertTask('Prepare the sample database schema', '2016-06-01', '2016-06-01', 1, $projectId);
$sqlite->insertTask('Create new tables ', '2016-05-01', null, 0, $projectId);
$sqlite->insertTask('Insert some sample data', '2016-05-01', '2016-06-02', 1, $projectId);

// insert a second project
$projectId = $sqlite->insertProject('Mastering SQLite');
// insert the tasks for the second project
$sqlite->insertTask('Go to tutorials.acervolima.com', '2016-06-01', null, 0, $projectId);
$sqlite->insertTask('Read all the tutorials.', '2016-06-01', null, 0, $projectId);
$sqlite->insertTask('Use Try It page to practice the SQLite commands.', '2016-06-01', null, 0, $projectId);
$sqlite->insertTask('Develop a simple SQLite-based application', '2016-06-15', null, 0, $projectId);Linguagem de código:  PHP  ( php )

Neste tutorial, mostramos como usar o PDOStatement para inserir dados nas tabelas SQLite.

Deixe um comentário

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