关于mysql api中my_bool的取值范围的问题
程序员文章站
2024-01-18 13:42:46
...
官方文档中给的描述为:A boolean type, for values that are true (non-zero) or false (zero). 意思是0为false,非0为true。但
my_bool 在mysql中被定义为:char
官方文档中给的描述为:A boolean type, for values that are true (non-zero) or false (zero). 意思是0为false,非0为true。
但是在其接口与具体实现中好像并不是完全按照文档说明的方式进行判断(my_bool值为真为假)。
比如随便找一个接口:
22.9.3.2. mysql_autocommit()
my_bool mysql_autocommit(MYSQL *mysql, my_bool mode)
Description
Sets autocommit mode on if mode is 1, off if mode is 0. (注意这里,,只有mode为1的时候才干事,并不是非0)
Return Values
Zero if successful. Nonzero if an error occurred. (既然想把my_bool当作bool来用,那么为什么返回值又用其返回错误码。)
Errors
None.
我们在项目中碰到过类似的问题,明明 my_bool类型的变量非0,确不被判断为真。汗,与文档描述相悖。
所以比较安全的做法是就把它当作bool来用, 赋值的时候直接用true false.
推荐阅读
-
MySQL中关于查询条件中的字符串空格问题_MySQL
-
mysql中bigint、int、mediumint、smallint 和 tinyint的取值范围_MySQL
-
关于mysql中order by与group by的问题
-
数据库中MySQL各种字段的取值范围_MySQL
-
请教个mysql问题.关于获取查询结果中某一个字段的最大值(按照其他字段排序)
-
关于PHP中操作MySQL数据库的一些要注意的问题
-
python-关于mysql中的位图索引和位片索引问题
-
关于mysql api中my_bool的取值范围的问题_MySQL
-
MySQL中各种字段的取值范围
-
关于新浪微博API中授权登录的一些有关问题