Что такое тип данных C для столбца BOOLEAN в подготовленном операторе? - PullRequest
0 голосов
/ 14 марта 2019

Можно создать столбец с типом данных BOOLEAN, как указано в Создать логический столбец в MySQL со значением false по умолчанию . Например:

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 . Однако в руководстве не обсуждается тип данных 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 Ответ

2 голосов
/ 14 марта 2019

В MySQL BOOLEAN является синонимом TINYINT(1).

. Таким образом, вы будете использовать тип привязки MYSQL_TYPE_TINY.

...