学习笔记——SQLite3 编程与 HTML 基础

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. 学习资源

三、总结

SQLite3 编程要点

  1. 三部曲:打开 → 执行 → 关闭

  2. 错误处理:每次操作后检查返回值

  3. 资源管理:及时关闭数据库和释放错误信息

  4. 回调函数:正确处理查询结果

HTML 学习要点

  1. 语义化:使用合适的标签

  2. 属性:了解常用属性的作用

  3. 表单:重点掌握数据提交方式

  4. 兼容性:注意不同浏览器的支持差异

开发建议

  1. 始终检查SQLite操作的返回值

  2. HTML标签属性使用双引号

  3. 表单设计考虑用户体验

  4. 图片添加alt属性提高可访问性

相关推荐
码农水水7 小时前
国家电网Java面试被问:TCP的BBR拥塞控制算法原理
java·开发语言·网络·分布式·面试·wpf
2013092416277 小时前
1968年 Hart, Nilsson, Raphael 《最小成本路径启发式确定的形式基础》A* 算法深度研究报告
人工智能·算法
如何原谅奋力过但无声7 小时前
【力扣-Python-滑动窗口经典题】567.字符串的排列 | 424.替换后的最长重复字符 | 76.最小覆盖子串
算法·leetcode
qq_336313938 小时前
java基础-网络编程-TCP
java·网络·tcp/ip
testpassportcn8 小时前
UiPath-ADPV1 認證介紹|Automation Developer Professional v1
网络·学习·改行学it
玄冥剑尊8 小时前
贪心算法进阶
算法·贪心算法
生擒小朵拉8 小时前
ROS1学习笔记(二)
笔记·学习
玄冥剑尊8 小时前
贪心算法深化 I
算法·贪心算法
52Hz1188 小时前
力扣73.矩阵置零、54.螺旋矩阵、48.旋转图像
python·算法·leetcode·矩阵
BHXDML8 小时前
第一章:线性回归& 逻辑回归
算法·逻辑回归·线性回归