SQLite - PHP
Pemasangan
Pelanjutan SQLite3 didayakan secara lalai sejak PHP 5.3.0. Sambungan SQLite3 boleh dilumpuhkan pada masa penyusunan menggunakan --tanpa-sqlite3.
Pengguna Windows mesti mendayakan php_sqlite3.dll untuk menggunakan sambungan ini. Mulai PHP 5.3.0, DLL ini disertakan dalam pengedaran Windows PHP.
Untuk arahan pemasangan terperinci, adalah disyorkan untuk menyemak tutorial PHP kami dan tapak web rasminya.
API Antara Muka PHP
Berikut ialah program PHP penting yang boleh memenuhi keperluan anda untuk menggunakan pangkalan data SQLite dalam program PHP. Jika anda memerlukan butiran lanjut, lihat dokumentasi PHP rasmi.
Nombor Siri | API & Perihalan |
---|---|
1 | kosong awam SQLite3 ::open ( nama fail, bendera, kunci_enkripsi ) Buka pangkalan data SQLite 3. Jika binaan termasuk penyulitan, maka kunci yang akan cuba digunakan. Jika nama fail nama fail diberikan nilai ':memory:', maka SQLite3::open() akan mencipta pangkalan data dalam memori dalam RAM, yang hanya akan Bertahan untuk tempoh sesi. Jika nama fail ialah nama fail peranti sebenar, maka SQLite3::open() akan menggunakan nilai parameter ini untuk cuba membuka fail pangkalan data. Jika fail dengan nama itu tidak wujud, fail pangkalan data baharu dengan nama itu akan dibuat. Bendera pilihan digunakan untuk menentukan sama ada untuk membuka pangkalan data SQLite. Dihidupkan secara lalai apabila menggunakan SQLITE3_OPEN_READWRITE |. |
2 | public bool SQLite3::exec ( string $query ) Rutin ini menyediakan pintasan untuk melaksanakan perintah SQL Arahan SQL disediakan oleh parameter sql dan boleh terdiri daripada berbilang arahan SQL. Program ini digunakan untuk melaksanakan pertanyaan tanpa keputusan terhadap pangkalan data yang diberikan. |
3 | public SQLite3Result SQLite3::query ( string $query ) Rutin ini melaksanakan SQL pertanyaan, jika pertanyaan mengembalikan hasil, objek SQLite3Result akan dikembalikan. |
4 | public int SQLite3::lastErrorCode ( void ) Rutin ini mengembalikan kegagalan terbaharu Kod hasil angka untuk permintaan SQLite. |
5 | rentetan awam SQLite3::lastErrorMsg ( void ) Rutin ini mengembalikan kegagalan terbaharu Penerangan teks bahasa Inggeris tentang permintaan SQLite. |
6 | public int SQLite3::changes (void) Rutin ini mengembalikan yang terbaru bilangan baris pangkalan data yang dikemas kini atau disisipkan atau dipadamkan oleh pernyataan SQL. |
7 | public bool SQLite3::close (void) Rutin ini dipanggil sebelum menutup SQLite3 ::open() Buka sambungan pangkalan data. |
8 | rentetan awam SQLite3::escapeString ( string $value ) Rutin ini mengembalikan rentetan, Dalam Penyataan SQL, rentetan dilepaskan dengan betul atas sebab keselamatan. |
Menyambung ke pangkalan data
Kod PHP berikut menunjukkan cara menyambung ke pangkalan data sedia ada. Jika pangkalan data tidak wujud, ia akan dibuat dan objek pangkalan data akan dikembalikan.
<?php class MyDB extends SQLite3 { function __construct() { $this->open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "Opened database successfully\n"; } ?>
Sekarang, mari jalankan program di atas untuk mencipta pangkalan data kami test.db dalam direktori semasa. Anda boleh menukar laluan mengikut keperluan. Jika pangkalan data berjaya dibuat, maka mesej seperti yang ditunjukkan di bawah akan dipaparkan:
Open database successfully
Mencipta jadual
Coretan kod PHP berikut akan digunakan untuk mencipta jadual dalam pangkalan data yang dibuat sebelum ini:
<?php class MyDB extends SQLite3 { function __construct() { $this->open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "Opened database successfully\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 "Table created successfully\n"; } $db->close(); ?>
Apabila program di atas dilaksanakan, ia mencipta jadual SYARIKAT dalam test.db dan memaparkan mesej yang ditunjukkan di bawah:
Opened database successfully Table created successfully
operasi INSERT
di bawah Program PHP menunjukkan cara untuk mencipta rekod dalam jadual SYARIKAT yang dibuat di atas:
<?php class MyDB extends SQLite3 { function __construct() { $this->open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "Opened database successfully\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 "Records created successfully\n"; } $db->close(); ?>
Apabila program di atas dilaksanakan, ia mencipta rekod yang diberikan dalam jadual SYARIKAT dan memaparkan dua baris berikut:
Opened database successfully Records created successfully
PILIH Operasi
Atur cara PHP berikut menunjukkan cara untuk mendapatkan dan memaparkan rekod daripada jadual SYARIKAT yang dibuat sebelum ini:
<?php class MyDB extends SQLite3 { function __construct() { $this->open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "Opened database successfully\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 "Operation done successfully\n"; $db->close(); ?>
Apabila program di atas dilaksanakan, ia menghasilkan keputusan berikut :
Opened database successfully ID = 1 NAME = Paul ADDRESS = California SALARY = 20000 ID = 2 NAME = Allen ADDRESS = Texas SALARY = 15000 ID = 3 NAME = Teddy ADDRESS = Norway SALARY = 20000 ID = 4 NAME = Mark ADDRESS = Rich-Mond SALARY = 65000 Operation done successfully
Kemas kini Operasi
Kod PHP berikut menunjukkan cara untuk mengemas kini sebarang rekod menggunakan kenyataan KEMASKINI dan kemudian mendapatkan dan memaparkan rekod yang dikemas kini daripada jadual SYARIKAT:
<?php class MyDB extends SQLite3 { function __construct() { $this->open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "Opened database successfully\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(), " Record updated successfully\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 "Operation done successfully\n"; $db->close(); ?>
Pelaksanaan program di atas, ia menghasilkan keputusan berikut:
Opened database successfully 1 Record updated successfully ID = 1 NAME = Paul ADDRESS = California SALARY = 25000 ID = 2 NAME = Allen ADDRESS = Texas SALARY = 15000 ID = 3 NAME = Teddy ADDRESS = Norway SALARY = 20000 ID = 4 NAME = Mark ADDRESS = Rich-Mond SALARY = 65000 Operation done successfully
Operasi PADAM
Kod PHP berikut menunjukkan cara untuk memadam sebarang rekod menggunakan kenyataan DELETE dan kemudian dapatkan dan paparkan rekod yang tinggal daripada Jadual SYARIKAT:
<?php class MyDB extends SQLite3 { function __construct() { $this->open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "Opened database successfully\n"; } $sql =<<<EOF DELETE from COMPANY where ID=2; EOF; $ret = $db->exec($sql); if(!$ret){ echo $db->lastErrorMsg(); } else { echo $db->changes(), " Record deleted successfully\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 "Operation done successfully\n"; $db->close(); ?>
Apabila program di atas dilaksanakan, ia akan menghasilkan keputusan berikut:
Opened database successfully 1 Record deleted successfully ID = 1 NAME = Paul ADDRESS = California SALARY = 25000 ID = 3 NAME = Teddy ADDRESS = Norway SALARY = 20000 ID = 4 NAME = Mark ADDRESS = Rich-Mond SALARY = 65000 Operation done successfully