代码之家  ›  专栏  ›  技术社区  ›  jww avp

准备语句中布尔列的C数据类型是什么?

  •  0
  • jww avp  · 技术社区  · 7 年前

    可以用 BOOLEAN 数据类型详见 Create boolean column in MySQL with false as default value . 例如:

    CREATE TABLE Persons (
      ID int NOT NULL,
      LastName varchar(255),
      FirstName varchar(255),
      Married boolean DEFAULT false
    );
    

    MySQL数据类型 MYSQL_TYPE_INT MYSQL_TYPE_STRING 手册中有详细说明 23.8.9.1 C API Prepared Statement Type Codes . 但是,本手册并未讨论 布尔值

    #include <stdbool.h>
    #include <mysql/mysql.h>
    
    MYSQL_BIND bind[1];
    ...
    
    bool val = false;
    unsigned long len;
    len = sizeof(???);
    
    bind[0].buffer_type= MYSQL_TYPE_<???>;
    bind[0].buffer= (char*)&val;
    bind[0].buffer_length = len;
    bind[0].is_null= 0;
    bind[0].length= &len;
    

    我们使用什么样的数据类型 类型,我们如何计算 MYSQL_BIND.buffer_length

    1 回复  |  直到 7 年前
        1
  •  2
  •   user149341 user149341    7 年前

    在MySQL中, BOOLEAN is a synonym for TINYINT(1) .

    因此,你应该使用 MYSQL_TYPE_TINY