MySQL C API mysql_fetch_row()

RayFung 发布于 2012/08/08 18:23
阅读 2K+
收藏 0

假设表account有以下字段:
user_name : varchar(16)
password : varchar(32)

在 password 存放的是 md5 散列值(占用 32 字节)
执行完 select user_name, password from account 之后
row = mysql_fetch_row(res);
请问 row[0] 和 row[1] 是否都是以空字符 '\0' 结束的?
我在某台机器上测试的时候,发现如果某一记录的 password 字段的长度达到了 32,返回的数据貌似不是空字符结束的,而我将 password 的类型改为 varchar(33) 之后便正常了。

注:我使用的是 MySQL 提供的 C API,不是 PHP

期待各位大牛的解答,谢谢!

加载中
0
xinzaibing
xinzaibing
我使用正常啊。。
0
xinzaibing
xinzaibing
就是C API
0
RayFung
RayFung

引用来自“xinzaibing”的答案

我使用正常啊。。
我现在不能够在我的电脑上重现这个问题,但当时在别人的电脑上的确有问题
0
mahone
mahone

可能需要\0?我不太清楚。。。看来你最好还是设置33为好。。。

RayFung
RayFung
我查了官方文档,也未能解决我的疑惑
0
ChenQi
ChenQi

引用来自“RayFung”的答案

引用来自“xinzaibing”的答案

我使用正常啊。。
我现在不能够在我的电脑上重现这个问题,但当时在别人的电脑上的确有问题
你确定不是因为其他原因导致你看到的结果异常?
RayFung
RayFung
可能是其他原因造成的吧,刚刚在之前的机器上也无法重现了。
返回顶部
顶部