使用php来连接sqlite数据库,Windows 用户必须启用 php_sqlite3.dll 才能使用该扩展。关于如何启用 php_sqlite3.dll,可以参考未检测到您服务器环境的sqlite3数据库扩展。
连接数据库
以下代码显示了如何连接到一个现有的数据库。
<?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";
}
?>
我们将这个文件命名为test.php,并将test.php和test.db放入到phpstudy的www目录下,在浏览器下输入localhost/test.php,会得到如下消息:
Opened database successfully
INSERT操作
class MyDB extends SQLite3
{
function __construct()
{
$this->open('tests.db'); //打开tests.db数据库
}
}
$db = new MyDB(); // 创建db对象,
if(!$db){
echo $db->lastErrorMsg(); //若db对象为空,则连接失败
} else {
echo "Opened database successfully\n";
}
$sql =<<<EOF
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (9, 'Mark', 25, 'Rich-Mond ', 65000.00 );
EOF;
$ret = $db->exec($sql); //执行SQL命令的快捷方式,可以由多个SQL命令组成
if(!$ret){
echo $db->lastErrorMsg();
} else {
echo "Records created successfully\n";
}
$db->close(); //关闭连接
SELECT查询
从数据表COMPANY中获取并显示记录
class MyDB extends SQLite3
{
function __construct()
{
$this->open('tests.db'); //打开tests.db数据库
}
}
$db = new MyDB(); // 创建db对象,
if(!$db){
echo $db->lastErrorMsg(); //若db对象为空,则连接失败
} else {
echo "Opened database successfully\n";
}
$sql =<<<EOF
SELECT * from COMPANY;
EOF;
$ret = $db->query($sql); //执行一个SQL查询,如果查询到返回结果则返回一个SQLite3Result对象
/*将相应的数据表中的数据显示出来 */
while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
echo "ID = ". $row['ID'] . "<br/>";
echo "NAME = ". $row['NAME'] ."<br/>";
echo "ADDRESS = ". $row['ADDRESS'] ."<br/>";
echo "SALARY = ".$row['SALARY'] ."<br/>";
}
echo "Operation done successfully\n";
$db->close(); //关闭连接
update操作
如何使用 UPDATE 语句来更新任何记录,然后从 COMPANY 表中获取并显示更新的记录:
class MyDB extends SQLite3
{
function __construct()
{
$this->open('tests.db'); //打开tests.db数据库
}
}
$db = new MyDB(); // 创建db对象,
if(!$db){
echo $db->lastErrorMsg(); //若db对象为空,则连接失败
} 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 "Records created successfully\n";
}
$db->close(); //关闭连接
DELETE 操作
如何使用 UPDATE 语句来更新任何记录,然后从 COMPANY 表中获取并显示更新的记录:
class MyDB extends SQLite3
{
function __construct()
{
$this->open('tests.db'); //打开tests.db数据库
}
}
$db = new MyDB(); // 创建db对象,
if(!$db){
echo $db->lastErrorMsg(); //若db对象为空,则连接失败
} 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 "Records created successfully\n";
}
$db->close(); //关闭连接