自学嵌入式day42,html

一、SQLite3 数据库操作

SQLite3 是一个轻量级数据库库,在 C 语言中常用 sqlite3_open, sqlite3_exec, 和 sqlite3_close 函数来管理数据库。以下是关键步骤:

  1. 打开数据库 (sqlite3_open)

    用于创建或连接数据库文件。示例代码中:

    c 复制代码
    sqlite3* db = NULL;
    int ret = sqlite3_open("123.db", &db);
    if (ret != SQLITE_OK) {
        fprintf(stderr, "sqlite3_open %s\n", sqlite3_errmsg(db));
        sqlite3_close(db);
        return 1;
    }
    • sqlite3_open 的第一个参数是数据库文件名(如 "123.db"),第二个参数是数据库句柄指针。
    • 返回值 ret 检查是否成功(SQLITE_OK 表示成功),失败时用 sqlite3_errmsg 获取错误信息。
    • 错误处理包括关闭数据库(sqlite3_close)并退出。
  2. 执行 SQL 语句 (sqlite3_exec)

    用于执行插入、查询等操作。示例中插入数据:

    c 复制代码
    char* errmsg = NULL;
    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 %s\n", errmsg);
        sqlite3_free(errmsg);
        sqlite3_close(db);
        return 1;
    }
    • sql_cmd 是 SQL 命令字符串。
    • 第三个参数是回调函数指针,用于处理查询结果(在查询示例中用到)。
    • 错误时使用 sqlite3_free 释放错误消息内存。
  3. 处理查询结果(回调函数)

    当执行查询(如 SELECT)时,需定义回调函数来处理结果集。您提供的 show 函数示例:

    c 复制代码
    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;
    }
    • 回调函数在每次获取一条记录时被调用,调用次数等于结果集的行数。

    • col 是列数,title 是列名数组,result 是当前行的数据数组。

    • 返回值必须为 0,否则回调只执行一次(可能中断处理)。

    • sqlite3_exec 中指定回调:

      c 复制代码
      char sql_cmd[512] = "select * from user ;";
      ret = sqlite3_exec(db, sql_cmd, show, NULL, &errmsg);
  4. 关闭数据库 (sqlite3_close)

    操作完成后必须关闭数据库以释放资源:

    c 复制代码
    sqlite3_close(db);
  • 始终检查函数返回值并进行错误处理。
  • 使用回调函数时,确保其正确处理多行数据。
  • 避免 SQL 注入:在真实应用中,使用参数化查询而非拼接字符串。
二、HTML 基础

  1. HTML 基本结构

    示例代码:

    html 复制代码
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>中文测试。。。</title>
        </head>
        <body>
            这里是测试body测试内容。。。
        </body>
    </html>
    • <!DOCTYPE html> 声明文档类型。
    • <html> 是根元素,包含 <head>(元数据)和 <body>(内容)。
    • <meta charset="utf-8"> 确保中文字符正确显示。
  2. 超链接 (<a> 标签)

    用于链接到外部网站、本地文件或图片:

    html 复制代码
    <a href="http://www.baidu.com">baidu</a>
    <br><a href="1.html">111</a>
    <br><a href="1.html"><img src="abc.jpg"></a>
    • href 属性指定目标 URL 或文件路径。
    • <br> 是换行标签。
    • 图片可作为链接内容(如第三行)。
  3. 图片 (<img> 标签)

    是单标签(无需闭合),常用属性:

    html 复制代码
    <img src="abc.jpg" alt="美女" width="100" height="200">
    <img src="abc.jpg" alt="美女" width="50%" height="200%">
    • src:图片来源路径。
    • alt:图片无法显示时的替代文本。
    • widthheight:指定尺寸(像素或百分比)。
  4. 表单 (<form> 标签)

    用于收集用户输入数据:

    html 复制代码
    <form action="submit.php" method="post">
        <!-- 输入元素 -->
    </form>
    • action:表单数据提交的目标 URL。

    • method:提交方式,get(数据附加到 URL)或 post(数据在请求体中),默认为 get

    • Input 元素 :表单的核心组件,示例属性:

      html 复制代码
      <input type="text" name="username" placeholder="请输入用户名" required>
      <input type="password" name="pwd">
      <input type="submit" value="提交">
      <input type="reset" value="重置">
      <input type="hidden" name="token" value="abc123">
      • type:输入类型,如 text(文本)、password(密码)、submit(提交按钮)、reset(重置按钮)、hidden(隐藏字段)。
      • name:参数名称,用于服务器识别。
      • value:默认值。
      • placeholder:提示文本。
      • required:必填字段(HTML5 特性)。
      • maxlength:最大输入长度。
相关推荐
凤山老林5 分钟前
DDD(领域驱动设计)在复杂业务系统中的落地指南
java·开发语言·数据库·ddd·领域驱动
凯瑟琳.奥古斯特16 分钟前
子查询原理与实战案例解析
开发语言·数据库·职场和发展·数据库开发
KaMeidebaby34 分钟前
卡梅德生物技术快报|酵母双杂交 cDNA 文库构建与蛋白互作筛选流程
服务器·前端·数据库·人工智能·算法
暴躁小师兄数据学院40 分钟前
【AI大数据工程师特训笔记】第02讲:PostgreSQL数据库生态全景
大数据·数据库·人工智能·postgresql
沐风___40 分钟前
App 上架之后:如何看数据、获取用户与持续迭代产品
服务器·前端·数据库
夜微凉41 小时前
三、MySQL
android·数据库·mysql
小新同学^O^1 小时前
Redis的简单总结
数据库·redis·学习
暴躁小师兄数据学院1 小时前
【AI大数据工程师特训笔记】第11讲:正则表达式与正则函数
数据库·mysql
IT龟苓膏1 小时前
MySQL InnoDB 内存结构与性能调优:Buffer Pool、脏页、刷盘、临时表和 filesort 一篇讲清
数据库·mysql
城数派1 小时前
2026年500米分辨率DEM地形数据(全球/全国/分省/分市)
数据库·arcgis·信息可视化·数据分析·excel