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数据库。 如果数据库不存在,那么它将创建一个新的数据库,最后将返回一个数据库对象。

<?php
   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)中创建一个表:

<?php
class SQLiteDB extends SQLite3
{
  function __construct()
  {
	 $this->open('phpdb.db');
  }
}
$db = new SQLiteDB();
if(!$db){
  echo $db->lastErrorMsg();
} else {
  echo "Yes, Opened database successfully<br/>\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 "Yes, Table created successfully<br/>\n";
}
$db->close();

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

插入数据操作

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

<?php
class SQLiteDB extends SQLite3
{
  function __construct()
  {
	 $this->open('phpdb.db');
  }
}
$db = new SQLiteDB();
if(!$db){
  echo $db->lastErrorMsg();
} else {
  echo "Yes, Opened database successfully<br/>\n";
}

// 先删除后创建表
$sql = "DROP table company";
$ret = $db->exec($sql);

// 创建表语句

$sql =<<<EOF
      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<br/>\n";
}

// $db->close();

$sql =<<<EOF
      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<br/>\n";
   }
   $db->close();

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

SELECT操作

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

<?php
class SQLiteDB extends SQLite3
{
  function __construct()
  {
	 $this->open('phpdb.db');
  }
}
$db = new SQLiteDB();
if(!$db){
  echo $db->lastErrorMsg();
} else {
  echo "Yes, Opened database successfully<br/>\n";
}

// 先删除后创建表
$sql = "DROP table company";
$ret = $db->exec($sql);

// 创建表

$sql =<<<EOF
      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<br/>\n";
}

// $db->close();

$sql =<<<EOF
      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<br/>\n";
}

// 查询表中的数据

echo "<b> Select Data from company table :</b><hr/>";

$sql =<<<EOF
  SELECT * from COMPANY;
EOF;

$ret = $db->query($sql);
while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
  echo "ID = ". $row['ID'] . "<br/>\n";
  echo "NAME = ". $row['NAME'] ."<br/>\n";
  echo "ADDRESS = ". $row['ADDRESS'] ."<br/>\n";
  echo "SALARY =  ".$row['SALARY'] ."<br/>\n\n";
  echo '----------------------------------<br/>';
}

echo "Operation done successfully\n";

$db->close();

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

更新操作

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

<?php
class SQLiteDB extends SQLite3
{
  function __construct()
  {
	 $this->open('phpdb.db');
  }
}
$db = new SQLiteDB();
if(!$db){
  echo $db->lastErrorMsg();
} else {
  echo "Yes, Opened database successfully<br/>\n";
}

// 先删除后创建表
$sql = "DROP table company";
$ret = $db->exec($sql);

// 创建表

$sql =<<<EOF
      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<br/>\n";
}

// $db->close();

$sql =<<<EOF
      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<br/>\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<br/>\n";
}


// 查询表中的数据

echo "<b> Select Data from company table :</b><hr/>";

$sql =<<<EOF
  SELECT * from COMPANY;
EOF;

$ret = $db->query($sql);
while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
  echo "ID = ". $row['ID'] . "<br/>\n";
  echo "NAME = ". $row['NAME'] ."<br/>\n";
  echo "ADDRESS = ". $row['ADDRESS'] ."<br/>\n";
  echo "SALARY =  ".$row['SALARY'] ."<br/>\n\n";
  echo '----------------------------------<br/>';
}

echo "Operation done successfully\n";

$db->close();

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

删除操作

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

<?php
class SQLiteDB extends SQLite3
{
  function __construct()
  {
	 $this->open('phpdb.db');
  }
}
$db = new SQLiteDB();
if(!$db){
  echo $db->lastErrorMsg();
} else {
  echo "Yes, Opened database successfully<br/>\n";
}

// 先删除后创建表
$sql = "DROP table company";
$ret = $db->exec($sql);

// 创建表

$sql =<<<EOF
      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<br/>\n";
}

// $db->close();

$sql =<<<EOF
      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<br/>\n";
}

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

$sql =<<<EOF
  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<br/>\n";
}

// 查询表中的数据

echo "<b> Select Data from company table :</b><hr/>";

$sql =<<<EOF
  SELECT * from COMPANY;
EOF;

$ret = $db->query($sql);
while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
  echo "ID = ". $row['ID'] . "<br/>\n";
  echo "NAME = ". $row['NAME'] ."<br/>\n";
  echo "ADDRESS = ". $row['ADDRESS'] ."<br/>\n";
  echo "SALARY =  ".$row['SALARY'] ."<br/>\n\n";
  echo '----------------------------------<br/>';
}

echo "Operation done successfully\n";

$db->close();

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

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

转载于:https://my.oschina.net/u/2263383/blog/910163

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在HTML中连接到具体位置的SQLite数据库,需要使用一种服务器端的编程语言(如PHP、Python等)来实现。以下是一个使用PHP连接SQLite数据库的示例: 首先,确保您的计算机已经安装了PHPSQLite,并且SQLite数据库已经创建。 然后,创建一个名为index.php的HTML文件,并在文件中添加以下代码: ```php <!DOCTYPE html> <html> <head> <title>连接SQLite数据库</title> </head> <body> <?php // 设置SQLite数据库文件的路径 $db_file = "path_to_your_sqlite_db_file.db"; // 连接SQLite数据库 $db = new SQLite3($db_file); // 执行SQL查询并获取结果 $query = "SELECT * FROM your_table"; $result = $db->query($query); // 处理查询结果 while ($row = $result->fetchArray()) { echo $row['column1'] . " " . $row['column2'] . "<br>"; } // 关闭数据库连接 $db->close(); ?> </body> </html> ``` 将`$db_file`的值替换为您SQLite数据库文件的实际路径,并将`your_table`替换为您想要查询的表名。 然后,将index.php文件部署到您的Web服务器上,通过浏览器访问它,您应该可以看到来自SQLite数据库的数据。 ### 回答2: 要在HTML中连接SQLite数据库,我们可以使用JavaScript。下面是一个基本的步骤: 1. 在HTML页面中添加一个SQLite数据库文件。可以通过将SQLite文件保存在服务器上并通过URL链接到它,或者直接将SQLite文件放在您的项目目录中。 2. 在HTML中的`<head>`标签内添加以下代码来引入SQLite数据库的JavaScript库: ```html <script src="https://cdn.jsdelivr.net/npm/sql.js/dist/sql.js"></script> ``` 3. 在HTML页面中创建一个功能函数来连接SQLite数据库并执行查询。例如,可以创建一个名为`connectToDatabase()`的函数。以下是一个示例函数: ```html <script> function connectToDatabase() { var xhr = new XMLHttpRequest(); xhr.open('GET', 'path/to/your/sqlite/file.sqlite', true); xhr.responseType = 'arraybuffer'; xhr.onload = function(e) { var uInt8Array = new Uint8Array(this.response); var db = new SQL.Database(uInt8Array); // 执行查询或其他操作 var result = db.exec("SELECT * FROM your_table_name"); console.log(result); }; xhr.send(); } </script> ``` 在上面的示例代码中,`path/to/your/sqlite/file.sqlite`是SQLite数据库文件的相对或绝对路径。您可以根据实际情况进行修改。 4. 在需要连接SQLite数据库的地方调用`connectToDatabase()`函数。 ```html <button onclick="connectToDatabase()">连接数据库</button> ``` 当用户点击“连接数据库”按钮时,将调用`connectToDatabase()`函数,它将从指定的SQLite数据库文件加载数据,并执行查询或其他操作。 请注意,以上只是一个基本示例,真实的应用可能需要更多的代码来处理数据库连接、查询和操作。这个示例使用了sql.js库,它允许在浏览器中使用JavaScript操作SQLite数据库。 ### 回答3: 要在HTML中连接SQLite数据库,可以使用JavaScript和服务器端脚本语言来实现。以下为连接SQLite数据库的基本步骤: 1. 首先,需要在服务器上安装SQLite数据库,并创建一个数据库文件(例如,test.db)。 2. 在HTML文件中引入JavaScript库,例如jQuery,以便于使用Ajax进行服务器端请求。 3. 在JavaScript中编写代码,通过Ajax请求将数据库查询数据传递给服务器端脚本。 4. 在服务器端脚本中,通过连接SQLite数据库的函数来连接数据库。例如,在PHP中可以使用SQLite3类来连接数据库。 5. 在服务器端脚本中,接收来自客户端的数据,执行相应的数据库查询操作,并将查询结果返回给客户端。 6. 在JavaScript中,通过设置回调函数来处理服务器端返回的数据,并将数据在HTML页面中显示出来。 7. 可以使用HTML和CSS来设计和布局页面,将查询结果以表格、列表或其他适当的形式展示给用户。 需要注意的是,由于SQLite数据库是服务器上的资源,所以无法直接通过在HTML中编写代码连接SQLite数据库。必须借助服务器端脚本来连接和操作数据库,并通过客户端与服务器进行交互。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值