Latest web development tutorials

SQLite - PHP

installer

Depuis PHP 5.3.0 partir l'extension SQLite3 est activé par défaut. Vous pouvez désactiver SQLite3 une utilisation prolongée--without-sqlite3 au moment de la compilation.

Les utilisateurs de Windows doivent permettre php_sqlite3.dll d'utiliser cette extension. Depuis PHP 5.3.0 partir, cette DLL est inclus dans la distribution Windows PHP.

Pour obtenir des instructions d'installation détaillées, consultez notre recommandation de tutoriel PHP et son site officiel.

PHP Interface API

Le programme de PHP importantes suivantes sont pour répondre à vos besoins en utilisant la base de données SQLite dans le programme de PHP. Si vous avez besoin de plus de détails, s'il vous plaît voir la documentation officielle de PHP.

序号API & 描述
1public void SQLite3::open ( filename, flags, encryption_key )

打开一个 SQLite 3 数据库。如果构建包括加密,那么它将尝试使用的密钥。

如果文件名filename赋值为':memory:',那么 SQLite3::open() 将会在 RAM 中创建一个内存数据库,这只会在 session 的有效时间内持续。

如果文件名 filename 为实际的设备文件名称,那么 SQLite3::open() 将使用这个参数值尝试打开数据库文件。如果该名称的文件不存在,那么将创建一个新的命名为该名称的数据库文件。

可选的 flags 用于判断是否打开 SQLite 数据库。默认情况下,当使用 SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE 时打开。

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

该例程提供了一个执行 SQL 命令的快捷方式,SQL 命令由 sql 参数提供,可以由多个 SQL 命令组成。该程序用于对给定的数据库执行一个无结果的查询。

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

该例程执行一个 SQL 查询,如果查询到返回结果则返回一个SQLite3Result对象。

4public int SQLite3::lastErrorCode ( void )

该例程返回最近一次失败的 SQLite 请求的数值结果代码。

5public string SQLite3::lastErrorMsg ( void )

该例程返回最近一次失败的 SQLite 请求的英语文本描述。

6public int SQLite3::changes ( void )

该例程返回最近一次的 SQL 语句更新或插入或删除的数据库行数。

7public bool SQLite3::close ( void )

该例程关闭之前调用 SQLite3::open() 打开的数据库连接。

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

该例程返回一个字符串,在 SQL 语句中,出于安全考虑,该字符串已被正确地转义。

Connectez-vous à la base de données

Le code PHP ci-dessous montre comment se connecter à une base de données existante. Si la base de données n'existe pas, il est créé, et enfin retourne un objet de base de données.

<? Php
   MyDB de classe étend SQLite3
   {
      fonction __construct ()
      {
         $ This-> open ( 'test.db');
      }
   }
   $ Db = new MyDB ();
   if (! $ db) {
      echo $ db-> lastErrorMsg ();
   } Else {
      echo "base de données \ Ouvert avec succès n";
   }
?>

Maintenant, nous allons exécuter le programme ci - dessus, créez notretest.db de base de données dans le répertoire courant.Vous pouvez modifier le chemin si nécessaire. Si la base de données est créé avec succès, il affiche le message ci-dessous:

Ouvrez la base de données avec succès

Créer une table

Le code PHP extrait suivant sera utilisé pour créer une table dans la base de données créée précédemment:

<? Php
   MyDB de classe étend SQLite3
   {
      fonction __construct ()
      {
         $ This-> open ( 'test.db');
      }
   }
   $ Db = new MyDB ();
   if (! $ db) {
      echo $ db-> lastErrorMsg ();
   } Else {
      echo "base de données \ Ouvert avec succès n";
   }

   $ Sql ​​= <<< EOF
      CREATE TABLE COMPANY
      (ID INT PRIMARY KEY NOT NULL,
      NOM TEXT NOT NULL,
      AGE INT NOT NULL,
      ADRESSE CHAR (50),
      SALAIRE RÉEL);
EOF;

   $ Ret = $ db-> exec ($ sql);
   if (! $ ret) {
      echo $ db-> lastErrorMsg ();
   } Else {
      echo "Table créé \ avec succès n";
   }
   $ Db-> close ();
?>

Lorsque la procédure ci - dessus, il crée la table de l' entreprise danstest.db et affiche le message ci - dessous:

base de données ouvert avec succès
Tableau créé avec succès

opération INSERT

Le programme de PHP ci-dessous montre comment créer un enregistrement dans la table de société créée ci-dessus:

<? Php
   MyDB de classe étend SQLite3
   {
      fonction __construct ()
      {
         $ This-> open ( 'test.db');
      }
   }
   $ Db = new MyDB ();
   if (! $ db) {
      echo $ db-> lastErrorMsg ();
   } Else {
      echo "base de données \ Ouvert avec succès n";
   }

   $ Sql ​​= <<< EOF
      INSERT INTO COMPANY (ID, nom, âge, adresse, SALAIRE)
      VALUES (1, 'Paul', 32, 'California', 20000.00);

      INSERT INTO COMPANY (ID, nom, âge, adresse, SALAIRE)
      VALUES (2, 'Allen', 25, 'Texas', 15000.00);

      INSERT INTO COMPANY (ID, nom, âge, adresse, SALAIRE)
      VALEURS (3, 'Teddy', 23, «Norvège», 20000.00);

      INSERT INTO COMPANY (ID, nom, âge, adresse, SALAIRE)
      VALEURS (4, 'Mark', 25, 'Rich-Mond', 65000.00);
EOF;

   $ Ret = $ db-> exec ($ sql);
   if (! $ ret) {
      echo $ db-> lastErrorMsg ();
   } Else {
      echo "Les documents créés avec succès \ n";
   }
   $ Db-> close ();
?>

Le programme ci-dessus est exécuté, il sera créé dans le tableau de la société pour un enregistrement donné, et affiche les deux lignes suivantes:

base de données ouvert avec succès
Dossiers créé avec succès

opérations SELECT

Le programme PHP suivant montre comment obtenir de la table de société créée plus tôt et affiche l'enregistrement:

<? Php
   MyDB de classe étend SQLite3
   {
      fonction __construct ()
      {
         $ This-> open ( 'test.db');
      }
   }
   $ Db = new MyDB ();
   if (! $ db) {
      echo $ db-> lastErrorMsg ();
   } Else {
      echo "base de données \ Ouvert avec succès n";
   }

   $ Sql ​​= <<< EOF
      SELECT * de 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 [ 'ADRESSE'] "\ n" .;
      . Echo "SALAIRE =" $ row [ 'SALAIRE'] "\ n \ n" .;
   }
   echo "Opération effectuée avec succès \ n";
   $ Db-> close ();
?>

Lorsque le programme ci-dessus est exécuté, il va produire les résultats suivants:

base de données ouvert avec succès
ID = 1
NAME = Paul
ADDRESS = Californie
SALAIRE = 20000

ID = 2
NAME = Allen
ADDRESS = Texas
SALAIRE = 15000

ID = 3
NAME = Teddy
ADDRESS = Norvège
SALAIRE = 20000

ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALAIRE = 65000

Opération effectuée avec succès

opération UPDATE

Le code PHP suivant montre comment utiliser l'instruction UPDATE pour mettre à jour tous les dossiers, puis obtenir à partir du tableau de l'entreprise et afficher l'enregistrement mis à jour:

<? Php
   MyDB de classe étend SQLite3
   {
      fonction __construct ()
      {
         $ This-> open ( 'test.db');
      }
   }
   $ Db = new MyDB ();
   if (! $ db) {
      echo $ db-> lastErrorMsg ();
   } Else {
      echo "base de données \ Ouvert avec succès n";
   }
   $ Sql ​​= <<< EOF
      UPDATE COMPANY mis SALAIRE = 25000.00 où ID = 1;
EOF;
   $ Ret = $ db-> exec ($ sql);
   if (! $ ret) {
      echo $ db-> lastErrorMsg ();
   } Else {
      echo $ db-> changements (), "Enregistrement mis à jour avec succès \ n";
   }

   $ Sql ​​= <<< EOF
      SELECT * de 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 [ 'ADRESSE'] "\ n" .;
      . Echo "SALAIRE =" $ row [ 'SALAIRE'] "\ n \ n" .;
   }
   echo "Opération effectuée avec succès \ n";
   $ Db-> close ();
?>

Lorsque le programme ci-dessus est exécuté, il va produire les résultats suivants:

base de données ouvert avec succès
1 Record mis à jour avec succès
ID = 1
NAME = Paul
ADDRESS = Californie
SALAIRE = 25000

ID = 2
NAME = Allen
ADDRESS = Texas
SALAIRE = 15000

ID = 3
NAME = Teddy
ADDRESS = Norvège
SALAIRE = 20000

ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALAIRE = 65000

Opération effectuée avec succès

opération DELETE

Le code PHP suivant montre comment utiliser l'instruction DELETE supprime tous les enregistrements, puis repris dans le tableau de l'entreprise et affiche l'enregistrement restant:

<? Php
   MyDB de classe étend SQLite3
   {
      fonction __construct ()
      {
         $ This-> open ( 'test.db');
      }
   }
   $ Db = new MyDB ();
   if (! $ db) {
      echo $ db-> lastErrorMsg ();
   } Else {
      echo "base de données \ Ouvert avec succès n";
   }
   $ Sql ​​= <<< EOF
      SUPPRIMER à partir COMPANY où ID = 2;
EOF;
   $ Ret = $ db-> exec ($ sql);
   if (! $ ret) {
     echo $ db-> lastErrorMsg ();
   } Else {
      echo $ db-> changements (), "Enregistrement supprimé \ n";
   }

   $ Sql ​​= <<< EOF
      SELECT * de 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 [ 'ADRESSE'] "\ n" .;
      . Echo "SALAIRE =" $ row [ 'SALAIRE'] "\ n \ n" .;
   }
   echo "Opération effectuée avec succès \ n";
   $ Db-> close ();
?>

Lorsque le programme ci-dessus est exécuté, il va produire les résultats suivants:

base de données ouvert avec succès
1 Record supprimé
ID = 1
NAME = Paul
ADDRESS = Californie
SALAIRE = 25000

ID = 3
NAME = Teddy
ADDRESS = Norvège
SALAIRE = 20000

ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALAIRE = 65000

Opération effectuée avec succès