Можно создать столбец с BOOLEAN
данных 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
данных 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
?
В MySQL BOOLEAN
является синонимом TINYINT(1)
.
Таким образом, вы будете использовать MYSQL_TYPE_TINY
привязки MYSQL_TYPE_TINY
.
bool val
вmy_bool b = val
, а затем использовать его какbind[0].buffer= (char*)&b;
?bool
не гарантируется, поэтому приведениеbool *
кchar *
может привести к неожиданным эффектам.