sqlite-php教程,PHP连接SQLite数据库

本篇文章帮大家学习php连接SQLite数据库,包含了PHP连接SQLite数据库使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。

SQLite3扩展名在PHP 5.3.0+以上都会默认启用。可以在编译时使用--without-sqlite3来禁用它。

Windows用户可通过启用php_sqlite3.dll才能使用此扩展。 php_sqlite3.dll默认包含在PHP 5.3.0之后的PHP发行版中。

有关详细的安装说明,请查看PHP教程及其官方网站。

连接到SQLite数据库

以下PHP代码显示如何连接到SQLite数据库。 如果数据库不存在,那么它将创建一个新的数据库,最后将返回一个数据库对象。

class SQLiteDB extends SQLite3

{

function __construct()

{

$this->open('phpdb.db');

}

}

$db = new SQLiteDB();

if(!$db){

echo $db->lastErrorMsg();

} else {

echo "Yes, Opened database successfully\n";

}

?>

现在,运行上面的程序在当前目录中创建指定数据库:phpdb.db。可以根据需要更改路径。 如果数据库成功创建,则会提供以下消息:

在执行上面语句后,应该也会在相同的目录下自动创建一个名称为:phpdb.db的数据库文件。如下所示 -

创建表

以下PHP程序将用于在上面创建的数据库(phpdb.db)中创建一个表:

class SQLiteDB extends SQLite3

{

function __construct()

{

$this->open('phpdb.db');

}

}

$db = new SQLiteDB();

if(!$db){

echo $db->lastErrorMsg();

} else {

echo "Yes, Opened database successfully
\n";

}

$sql =<<

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 "Yes, Table created successfully
\n";

}

$db->close();

当执行上述程序时,它将在数据库(phpdb.db)中创建一个名称为:company的表,并显示以下消息:

插入数据操作

以下PHP程序显示了如何在上述示例中创建的company表中插入数据记录:

class SQLiteDB extends SQLite3

{

function __construct()

{

$this->open('phpdb.db');

}

}

$db = new SQLiteDB();

if(!$db){

echo $db->lastErrorMsg();

} else {

echo "Yes, Opened database successfully
\n";

}

// 先删除后创建表

$sql = "DROP table company";

$ret = $db->exec($sql);

// 创建表语句

$sql =<<

CREATE TABLE if not exists 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 "Yes, Table created successfully
\n";

}

// $db->close();

$sql =<<

INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (1, 'Maxsu', 26, 'Haikou', 20000.00 );

INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (2, 'Allen', 25, 'Guangzhou', 15000.00 );

INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (3, 'Tenny', 23, 'Shanghai', 20000.00 );

INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (4, 'Weiwang', 25, 'Beijing ', 65000.00 );

EOF;

$ret = $db->exec($sql);

if(!$ret){

echo $db->lastErrorMsg();

} else {

echo "Yes, Some Records has Inserted successfully
\n";

}

$db->close();

当执行上述程序时,将向company表中插入给定的记录,并显示如下:

SELECT操作

以下PHP程序显示了如何从上述示例中创建的company表中获取并显示数据记录:

class SQLiteDB extends SQLite3

{

function __construct()

{

$this->open('phpdb.db');

}

}

$db = new SQLiteDB();

if(!$db){

echo $db->lastErrorMsg();

} else {

echo "Yes, Opened database successfully
\n";

}

// 先删除后创建表

$sql = "DROP table company";

$ret = $db->exec($sql);

// 创建表

$sql =<<

CREATE TABLE if not exists 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 "Yes, Table created successfully
\n";

}

// $db->close();

$sql =<<

INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (1, 'Maxsu', 26, 'Haikou', 20000.00 );

INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (2, 'Allen', 25, 'Guangzhou', 15000.00 );

INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (3, 'Tenny', 23, 'Shanghai', 20000.00 );

INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (4, 'Weiwang', 25, 'Beijing ', 65000.00 );

EOF;

$ret = $db->exec($sql);

if(!$ret){

echo $db->lastErrorMsg();

} else {

echo "Yes, Some Records has Inserted successfully
\n";

}

// 查询表中的数据

echo " Select Data from company table :


";

$sql =<<

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 '----------------------------------
';

}

echo "Operation done successfully\n";

$db->close();

执行上述程序时,会产生以下结果:

更新操作

以下PHP代码显示了如何使用UPDATE语句来更新记录,然后从company表中获取并显示更新的记录:

class SQLiteDB extends SQLite3

{

function __construct()

{

$this->open('phpdb.db');

}

}

$db = new SQLiteDB();

if(!$db){

echo $db->lastErrorMsg();

} else {

echo "Yes, Opened database successfully
\n";

}

// 先删除后创建表

$sql = "DROP table company";

$ret = $db->exec($sql);

// 创建表

$sql =<<

CREATE TABLE if not exists 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 "Yes, Table created successfully
\n";

}

// $db->close();

$sql =<<

INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (1, 'Maxsu', 26, 'Haikou', 20000.00 );

INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (2, 'Allen', 25, 'Guangzhou', 15000.00 );

INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (3, 'Tenny', 23, 'Shanghai', 20000.00 );

INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (4, 'Weiwang', 25, 'Beijing ', 65000.00 );

EOF;

$ret = $db->exec($sql);

if(!$ret){

echo $db->lastErrorMsg();

} else {

echo "Yes, Some Records has Inserted successfully
\n";

}

// 更新ID=1的薪水为:29999

$sql = 'UPDATE COMPANY set SALARY = 29999.00 where ID=1';

$ret = $db->exec($sql);

if(!$ret){

echo $db->lastErrorMsg();

} else {

echo $db->changes(), " Record(ID=1) updated successfully
\n";

}

// 查询表中的数据

echo " Select Data from company table :


";

$sql =<<

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 '----------------------------------
';

}

echo "Operation done successfully\n";

$db->close();

执行上述程序时,会产生以下结果:

删除操作

以下PHP代码显示了如何使用DELETE语句删除任何记录,然后从company表中获取并显示剩余的记录:

class SQLiteDB extends SQLite3

{

function __construct()

{

$this->open('phpdb.db');

}

}

$db = new SQLiteDB();

if(!$db){

echo $db->lastErrorMsg();

} else {

echo "Yes, Opened database successfully
\n";

}

// 先删除后创建表

$sql = "DROP table company";

$ret = $db->exec($sql);

// 创建表

$sql =<<

CREATE TABLE if not exists 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 "Yes, Table created successfully
\n";

}

// $db->close();

$sql =<<

INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (1, 'Maxsu', 26, 'Haikou', 20000.00 );

INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (2, 'Allen', 25, 'Guangzhou', 15000.00 );

INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (3, 'Tenny', 23, 'Shanghai', 20000.00 );

INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (4, 'Weiwang', 25, 'Beijing ', 65000.00 );

EOF;

$ret = $db->exec($sql);

if(!$ret){

echo $db->lastErrorMsg();

} else {

echo "Yes, Some Records has Inserted successfully
\n";

}

// 更新ID小于等于2的数据记录

$sql =<<

DELETE from COMPANY where ID<=2;

EOF;

$ret = $db->exec($sql);

if(!$ret){

echo $db->lastErrorMsg();

} else {

echo $db->changes(), " Record(ID<=2) deleted successfully
\n";

}

// 查询表中的数据

echo " Select Data from company table :


";

$sql =<<

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 '----------------------------------
';

}

echo "Operation done successfully\n";

$db->close();

执行上述程序时,会产生以下结果:

由于其它操作都类似,只需写上对应SQL语句,然后使用PHP执行即可,所以其它的示例在这里就不再一一演示了。如有疑问,可以留言联系。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值