SQLite3 编程与 HTML 基础
一、SQLite3 编程基础
1. 基本流程
#include <sqlite3.h>
// 1. 打开数据库
int sqlite3_open(const char *filename, sqlite3 **ppDb);
// 2. 执行SQL语句
int sqlite3_exec(
sqlite3 *db, // 数据库句柄
const char *sql, // SQL语句
int (*callback)(void*,int,char**,char**), // 回调函数
void *arg, // 回调函数参数
char **errmsg // 错误信息
);
// 3. 关闭数据库
int sqlite3_close(sqlite3 *db);
2. 完整示例
cpp
#include <sqlite3.h>
#include <stdio.h>
// 回调函数 - 显示查询结果
int show(void* arg, int col, char** result, char** title)
{
static int flag = 0;
int i = 0;
if (0 == flag)
{
flag = 1;
// 打印标题行
for (i = 0; i < col; i++)
{
printf("%s\t\t", title[i]);
}
printf("\n");
}
// 打印数据行
for (i = 0; i < col; i++)
{
printf("%s\t\t", result[i]);
}
printf("\n");
return 0; // 必须返回0,否则只调用一次
}
int main(int argc, char** argv)
{
sqlite3* db = NULL;
char* errmsg = NULL;
// 1. 打开数据库
int ret = sqlite3_open("123.db", &db);
if (ret != SQLITE_OK)
{
fprintf(stderr, "sqlite3_open error: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
// 2.1 插入数据
char sql_cmd[512] = "insert into user values(6,'lvbu',31);";
ret = sqlite3_exec(db, sql_cmd, NULL, NULL, &errmsg);
if (ret != SQLITE_OK)
{
fprintf(stderr, "sqlite3_exec error: %s\n", errmsg);
sqlite3_free(errmsg);
sqlite3_close(db);
return 1;
}
// 2.2 查询数据
char query_cmd[512] = "select * from user;";
ret = sqlite3_exec(db, query_cmd, show, NULL, &errmsg);
if (ret != SQLITE_OK)
{
fprintf(stderr, "sqlite3_exec error: %s\n", errmsg);
sqlite3_free(errmsg);
sqlite3_close(db);
return 1;
}
// 3. 关闭数据库
sqlite3_close(db);
return 0;
}
3. 重要注意事项
-
sqlite3_exec的回调函数会被调用多次,每次处理一条记录 -
回调函数必须返回0,否则只会调用一次
-
错误信息需要使用
sqlite3_free()释放 -
每次操作后都应检查返回值
二、HTML 基础
1. 基本结构
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>页面标题</title>
</head>
<body>
页面内容...
</body>
</html>
2. 常用标签
超链接 <a>
<!-- 1. 链接外部网站 -->
<a href="http://www.baidu.com">百度</a>
<!-- 2. 链接本地文件 -->
<a href="1.html">本地页面</a>
<!-- 3. 图片链接 -->
<a href="1.html">
<img src="abc.jpg" alt="图片描述">
</a>
图片 <img>
<!-- 单标签 -->
<img src="abc.jpg" alt="图片描述" width="100" height="200">
<img src="abc.jpg" alt="图片描述" width="50%" height="50%">
属性说明:
-
src:图像来源(必需) -
alt:替代文本(图片无法显示时显示) -
width,height:宽高(像素或百分比)
表单 <form>
<form action="submit.php" method="post">
<!-- 表单元素 -->
</form>
表单属性:
-
action:数据提交的目标地址 -
method:提交方式-
get:数据附加在URL后面(默认) -
post:数据打包发送(更安全)
-
输入框 <input>
<!-- 文本输入框 -->
<input type="text" name="username" placeholder="请输入用户名" required>
<!-- 密码框 -->
<input type="password" name="password">
<!-- 提交按钮 -->
<input type="submit" value="提交">
<!-- 重置按钮 -->
<input type="reset" value="重置">
<!-- 普通按钮 -->
<input type="button" value="点击" οnclick="function()">
<!-- 图片按钮 -->
<input type="image" src="button.jpg">
<!-- 隐藏字段 -->
<input type="hidden" name="token" value="abc123">
<!-- 邮箱输入 -->
<input type="email" name="email">
<input> 常用属性:
-
type:输入框类型 -
name:参数名称(传递给服务器的变量名) -
value:默认值 -
maxlength:最大长度 -
placeholder:提示信息 -
required:必填项
3. 学习资源
-
推荐使用
<br>标签进行换行
三、总结
SQLite3 编程要点
-
三部曲:打开 → 执行 → 关闭
-
错误处理:每次操作后检查返回值
-
资源管理:及时关闭数据库和释放错误信息
-
回调函数:正确处理查询结果
HTML 学习要点
-
语义化:使用合适的标签
-
属性:了解常用属性的作用
-
表单:重点掌握数据提交方式
-
兼容性:注意不同浏览器的支持差异
开发建议
-
始终检查SQLite操作的返回值
-
HTML标签属性使用双引号
-
表单设计考虑用户体验
-
图片添加alt属性提高可访问性