自学嵌入式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:最大输入长度。
相关推荐
广州浮点FLOATLIC6 分钟前
Mentor Graphics浮动许可证管理为什么一到流片节点就失控
java·大数据·数据库·许可证管理·cad 许可证优化
小王C语言35 分钟前
MySQL 库的操作:字符集和校验规则、数据库的增删查改、备份和还原
数据库·mysql
小王C语言43 分钟前
MySQL 数据类型:数值类型、字符串类型、日期和时间类型、enum 和 set、find_in_set 查询
android·数据库·mysql
2401_881828321 小时前
简易文本处理网页工具|AI 通识课第三次作业
前端·javascript·html
MC皮蛋侠客1 小时前
Redis 系列(六):过期、内存淘汰与内存优化——让 Redis 活得更久
数据库·redis·bootstrap
杜子不疼.2 小时前
模型效果不好时,我现在会先看数据集
数据库
夜雪一千2 小时前
MySQL的事务是什么?原理、ACID、隔离级别与实战详解
数据库·mysql
会编程的土豆2 小时前
从「锁」到「时间」:后端里几个容易混的概念
java·开发语言·数据库·goland
上下求索,莫负韶华2 小时前
笔记-数据库事务和java事务和切面
java·数据库·笔记
黄华SJ520it2 小时前
顶俏洗衣液模式制度开发介绍:S2B2C社交分销+多门店核销系统全解析
前端·数据库·小程序·零售·系统开发