📅  最后修改于: 2021-01-04 05:12:41             🧑  作者: Mango
在本章中,您将学习如何在PHP程序中使用SQLite。
从PHP 5.3.0起默认启用SQLite3扩展。可以在编译时使用–without-sqlite3禁用它。
Windows用户必须启用php_sqlite3.dll才能使用此扩展名。从PHP 5.3.0开始,此DLL包含在Windows的PHP发行版中。
有关详细的安装说明,请查看我们的PHP教程及其官方网站。
以下是重要的PHP例程,这些例程可以满足您从PHP程序使用SQLite数据库的要求。如果您正在寻找更复杂的应用程序,则可以查阅PHP官方文档。
Sr.No. | API & Description |
---|---|
1 |
public void SQLite3::open ( filename, flags, encryption_key ) Opens SQLite 3 Database. If the build includes encryption, then it will attempt to use the key. If the filename is given as ‘:memory:’, SQLite3::open() will create an in-memory database in RAM that lasts only for the duration of the session. If the filename is actual device file name, SQLite3::open() attempts to open the database file by using its value. If no file by that name exists, then a new database file by that name gets created. Optional flags used to determine how to open the SQLite database. By default, open uses SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE. |
2 |
public bool SQLite3::exec ( string $query ) This routine provides a quick, easy way to execute SQL commands provided by sql argument, which can consist of more than one SQL command. This routine is used to execute a result-less query against a given database. |
3 |
public SQLite3Result SQLite3::query ( string $query ) This routine executes an SQL query, returning an SQLite3Result object if the query returns results. |
4 |
public int SQLite3::lastErrorCode ( void ) This routine returns the numeric result code of the most recent failed SQLite request. |
5 |
public string SQLite3::lastErrorMsg ( void ) This routine returns English text describing the most recent failed SQLite request. |
6 |
public int SQLite3::changes ( void ) This routine returns the number of database rows that were updated, inserted, or deleted by the most recent SQL statement. |
7 |
public bool SQLite3::close ( void ) This routine closes a database connection previously opened by a call to SQLite3::open(). |
8 |
public string SQLite3::escapeString ( string $value ) This routine returns a string that has been properly escaped for safe inclusion in an SQL statement. |
以下PHP代码显示了如何连接到现有数据库。如果数据库不存在,则将创建数据库,最后将返回数据库对象。
open('test.db');
}
}
$db = new MyDB();
if(!$db) {
echo $db->lastErrorMsg();
} else {
echo "Opened database successfully\n";
}
?>
现在,让我们运行上面的程序在当前目录中创建数据库test.db。您可以根据需要更改路径。如果数据库创建成功,则将显示以下消息-
Open database successfully
以下PHP程序将用于在先前创建的数据库中创建表。
open('test.db');
}
}
$db = new MyDB();
if(!$db) {
echo $db->lastErrorMsg();
} else {
echo "Opened database successfully\n";
}
$sql =<<exec($sql);
if(!$ret){
echo $db->lastErrorMsg();
} else {
echo "Table created successfully\n";
}
$db->close();
?>
执行上述程序后,它将在test.db中创建COMPANY表,并显示以下消息-
Opened database successfully
Table created successfully
以下PHP程序显示了如何在上面的示例中创建的COMPANY表中创建记录。
open('test.db');
}
}
$db = new MyDB();
if(!$db){
echo $db->lastErrorMsg();
} else {
echo "Opened database successfully\n";
}
$sql =<<exec($sql);
if(!$ret) {
echo $db->lastErrorMsg();
} else {
echo "Records created successfully\n";
}
$db->close();
?>
执行上述程序后,它将在COMPANY表中创建给定记录,并显示以下两行。
Opened database successfully
Records created successfully
以下PHP程序演示了如何从上例中创建的COMPANY表中获取和显示记录-
open('test.db');
}
}
$db = new MyDB();
if(!$db) {
echo $db->lastErrorMsg();
} else {
echo "Opened database successfully\n";
}
$sql =<<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();
?>
执行上述程序时,将产生以下结果。
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
以下PHP代码显示了如何使用UPDATE语句更新任何记录,然后从COMPANY表中获取并显示更新的记录。
open('test.db');
}
}
$db = new MyDB();
if(!$db) {
echo $db->lastErrorMsg();
} else {
echo "Opened database successfully\n";
}
$sql =<<exec($sql);
if(!$ret) {
echo $db->lastErrorMsg();
} else {
echo $db->changes(), " Record updated successfully\n";
}
$sql =<<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();
?>
执行上述程序时,将产生以下结果。
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
以下PHP代码显示了如何使用DELETE语句删除任何记录,然后从COMPANY表中获取并显示其余记录。
open('test.db');
}
}
$db = new MyDB();
if(!$db) {
echo $db->lastErrorMsg();
} else {
echo "Opened database successfully\n";
}
$sql =<<exec($sql);
if(!$ret){
echo $db->lastErrorMsg();
} else {
echo $db->changes(), " Record deleted successfully\n";
}
$sql =<<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();
?>
执行上述程序时,将产生以下结果。
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