English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP no SQLite

instalação

desde o PHP 5.3.0, o SQLite é habilitado por padrão3 extensão. Você pode usar a opção --sem-sqlite3 Desative o SQLite3 extensão.

Os usuários do Windows devem ativar a extensão php_sqlite3.dll para usar essa extensão. Desde PHP 5.3.0 A DLL é incluída na distribuição Windows do PHP.

Para obter instruções de instalação detalhadas, recomendamos que você consulte nosso tutorial PHP e seu site oficial.

PHP Interface API

A seguir estão os importantes programas PHP, que podem atender às suas necessidades no uso do banco de dados SQLite no programa PHP. Se precisar de mais detalhes, consulte a documentação oficial do PHP.

NúmeroAPI & Descrição
1public void SQLite3::open ( filename, flags, encryption_key )

abrir um SQLite 3 banco de dados. Se a construção incluir criptografia, então ele tentará usar a chave.

Se o nome do arquivo filename será atribuído a ':memory:'então o SQLite3::open() criará um banco de dados em RAM, que durará apenas durante a validade da sessão.

Se o nome do arquivo filename for o nome real do dispositivo, então o SQLite3::open() tentará abrir o arquivo de banco de dados usando esse valor de parâmetro. Se o arquivo com esse nome não existir, será criado um novo arquivo de banco de dados com esse nome.

Flags opcionais usados para determinar se o banco de dados SQLite será aberto. Pelo padrão, ao usar SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE ao abrir.

2public bool SQLite3::exec ( string $query )

Esta rotina fornece um atalho para executar comandos SQL, onde o comando SQL é fornecido pelo parâmetro sql e pode consistir em múltiplos comandos SQL. Este programa é usado para executar uma consulta sem resultado em um banco de dados dado.

3public SQLite3Result SQLite3::query ( string $query )

Esta rotina executa uma consulta SQL e retorna um SQLite3Result objeto.

4public int SQLite3::lastErrorCode ( void )

Esta rotina retorna o código de resultado numérico da solicitação SQLite falhada mais recente.

5public string SQLite3::lastErrorMsg ( void )

Esta rotina retorna a descrição textual em inglês da solicitação SQLite falhada mais recente.

6public int SQLite3::changes ( void )

Esta rotina retorna o número de linhas do banco de dados atualizadas ou inseridas ou removidas pela última vez na consulta SQL.

7public bool SQLite3::close ( void )

Esta rotina fecha a conexão do SQLite antes de ser chamada.3::open() Conexão de banco de dados aberta.

8public string SQLite3::escapeString (string $value )

Esta rotina retorna uma string, na instrução SQL, para segurança, a string foi corretamente escapada.

Conectar ao banco de dados

O seguinte código PHP mostra como conectar-se a um banco de dados existente. Se o banco de dados não existir, ele será criado e, finalmente, retornará um objeto de banco de dados.

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Banco de dados aberto com sucesso\n";
   }
?>

Agora, vamos executar o programa acima para criar nosso banco de dados no diretório atual test.db。Você pode alterar o caminho conforme necessário. Se o banco de dados for criado com sucesso, a mensagem a seguir será exibida:

Banco de dados aberto com sucesso

Criar tabela

O seguinte trecho de código PHP será usado para criar uma tabela no banco de dados anteriormente criado:

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Banco de dados aberto com sucesso\n";
   }
   $sql =<<<EOF
      CREATE TABLE COMPANY
      (ID INT PRIMARY KEY NOT NULL,
      NAME TEXT NOT NULL,
      AGE INT NOT NULL,
      ADDRESS CHAR(50),
      SALARY REAL);
EOF;
   $ret = $db->exec($sql);
   if(!$ret){
      echo $db->lastErrorMsg();
   } else {
      echo "Tabela criada com sucesso\n";
   }
   $db->close();
?>

Quando o programa acima é executado, ele cria: test.db Crie a tabela COMPANY no banco de dados e exiba a mensagem a seguir:

Banco de dados aberto com sucesso
Tabela criada com sucesso

Operação de INSERT

O seguinte programa PHP mostra como criar registros na tabela COMPANY criada acima:

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Banco de dados aberto com sucesso\n";
   }
   $sql =<<<EOF
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (1, 'Paul', 32, 'California', 20000.00 );
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (2, 'Allen', 25, 'Texas', 15000.00 );
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );
EOF;
   $ret = $db->exec($sql);
   if(!$ret){
      echo $db->lastErrorMsg();
   } else {
      echo "Registros criados com sucesso\n";
   }
   $db->close();
?>

Quando o programa acima é executado, ele cria o registro especificado na tabela COMPANY e exibe as seguintes duas linhas:

Banco de dados aberto com sucesso
Registros criados com sucesso

SELECT 操作

O programa PHP a seguir mostra como obter e exibir registros da tabela COMPANY previamente criada:

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Banco de dados aberto com sucesso\n";
   }
   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;
   $ret = $db->query($sql);
   while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
      echo "ID = ". $row['ID'] . "\n";
      echo "NAME = ". $row['NAME'] ."\n";
      echo "ADDRESS = ". $row['ADDRESS'] ."\n";
      echo "SALARY = ". $row['SALARY'] ."\n\n";
   }
   echo "Operação concluída com sucesso\n";
   $db->close();
?>

Ao executar o programa acima, ele produz os seguintes resultados:

Banco de dados aberto com sucesso
ID = 1
NOME = Paul
ENDEREÇO = California
SALARY =  20000
ID = 2
NAME = Allen
ADDRESS = Texas
SALARY =  15000
ID = 3
NOME = Teddy
ENDEREÇO = Noruega
SALARY =  20000
ID = 4
NOME = Mark
ENDEREÇO = Rico-Domingo
SALARY =  65000
Operação concluída com sucesso

Operação de UPDATE

O código PHP a seguir mostra como usar a cláusula UPDATE para atualizar qualquer registro e, em seguida, obter e exibir os registros atualizados da tabela COMPANY:

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Banco de dados aberto com sucesso\n";
   }
   $sql =<<<EOF
      UPDATE COMPANY set SALARY = 25000.00 where ID=1;
EOF;
   $ret = $db->exec($sql);
   if(!$ret){
      echo $db->lastErrorMsg();
   } else {
      echo $db->changes(), " Registro atualizado com sucesso\n";
   }
   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;
   $ret = $db->query($sql);
   while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
      echo "ID = ". $row['ID'] . "\n";
      echo "NAME = ". $row['NAME'] ."\n";
      echo "ADDRESS = ". $row['ADDRESS'] ."\n";
      echo "SALARY = ". $row['SALARY'] ."\n\n";
   }
   echo "Operação concluída com sucesso\n";
   $db->close();
?>

Ao executar o programa acima, ele produz os seguintes resultados:

Banco de dados aberto com sucesso
1 Registro atualizado com sucesso
ID = 1
NOME = Paul
ENDEREÇO = California
SALARY =  25000
ID = 2
NAME = Allen
ADDRESS = Texas
SALARY =  15000
ID = 3
NOME = Teddy
ENDEREÇO = Noruega
SALARY =  20000
ID = 4
NOME = Mark
ENDEREÇO = Rico-Domingo
SALARY =  65000
Operação concluída com sucesso

Operação de DELETE

O código PHP a seguir mostra como usar a cláusula DELETE para excluir qualquer registro e, em seguida, obter e exibir os registros restantes da tabela COMPANY:

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Banco de dados aberto com sucesso\n";
   }
   $sql =<<<EOF
      DELETE from COMPANY where ID=2;
EOF;
   $ret = $db->exec($sql);
   if(!$ret){
     echo $db->lastErrorMsg();
   } else {
      echo $db->changes(), " Registro deletado com sucesso\n";
   }
   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;
   $ret = $db->query($sql);
   while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
      echo "ID = ". $row['ID'] . "\n";
      echo "NAME = ". $row['NAME'] ."\n";
      echo "ADDRESS = ". $row['ADDRESS'] ."\n";
      echo "SALARY = ". $row['SALARY'] ."\n\n";
   }
   echo "Operação concluída com sucesso\n";
   $db->close();
?>

Ao executar o programa acima, ele produz os seguintes resultados:

Banco de dados aberto com sucesso
1 Registro excluído com sucesso
ID = 1
NOME = Paul
ENDEREÇO = California
SALARY =  25000
ID = 3
NOME = Teddy
ENDEREÇO = Noruega
SALARY =  20000
ID = 4
NOME = Mark
ENDEREÇO = Rico-Domingo
SALARY =  65000
Operação concluída com sucesso