自学嵌入式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:最大输入长度。
相关推荐
小猿姐3 小时前
实测对比:哪款开源 Kubernetes MySQL Operator 最值得用?(2026 深度评测)
数据库·mysql·云原生
倔强的石头_5 小时前
从 “存得下” 到 “算得快”:工业物联网需要新一代时序数据平台
数据库
TDengine (老段)6 小时前
TDengine IDMP 可视化 —— 分享
大数据·数据库·人工智能·时序数据库·tdengine·涛思数据·时序数据
GottdesKrieges7 小时前
OceanBase数据库备份配置
数据库·oceanbase
SPC的存折7 小时前
MySQL 8组复制完全指南
linux·运维·服务器·数据库·mysql
运维行者_7 小时前
OpManager MSP NetFlow Analyzer集成解决方案,应对多客户端网络流量监控挑战
大数据·运维·服务器·网络·数据库·自动化·运维开发
炸炸鱼.9 小时前
Python 操作 MySQL 数据库
android·数据库·python·adb
softshow10269 小时前
Etsy 把 1000 个 MySQL 分片迁进 Vitess
数据库·mysql
Ronaldinho Gaúch9 小时前
MySQL基础
数据库·mysql
不剪发的Tony老师10 小时前
Noir:一款键盘驱动的现代化数据库管理工具
数据库·sql