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

时间:2019-03-14 01:10:50

标签: mysql c boolean prepared-statement

一个人可以创建一个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_INTMYSQL_TYPE_STRING23.8.9.1 C API Prepared Statement Type Codes的手册中有详细说明。但是,本手册并未讨论BOOLEAN数据类型或如何在准备好的语句中使用它。例如:

#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;

我们将BOOLEAN类型使用哪种数据类型,以及如何计算MYSQL_BIND.buffer_length

1 个答案:

答案 0 :(得分:2)

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

这样,您将使用MYSQL_TYPE_TINY绑定类型。