自学嵌入式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:最大输入长度。
相关推荐
herinspace2 小时前
管家婆软件套接字服务器打不开怎么解决
运维·服务器·数据库
越甲八千2 小时前
async 和 await 详细解析
网络·数据库·tcp/ip
·云扬·2 小时前
MySQL高可用方案全解析:6种主流方案的原理、优缺点与选型指南
数据库·mysql
0思必得02 小时前
[Web自动化] JavaScriptAJAX与Fetch API
运维·前端·javascript·python·自动化·html·web自动化
only-qi2 小时前
深入理解MySQL中的MVCC:多版本并发控制的实现原理
java·数据库·mysql
G皮T2 小时前
【Elasticsearch】查询性能调优(六):track_total_hits 影响返回结果的相关性排序吗
大数据·数据库·elasticsearch·搜索引擎·全文检索·性能·opensearch
麒qiqi2 小时前
HTML 基础 + SQLite3 数据交互
sqlite·html·交互
夜光小兔纸2 小时前
Oracle 表新增 ID RAW(16) 字段并填充历史数据
数据库·sql·oracle
秋雨雁南飞2 小时前
WaferMap.HTML
前端·css·html