我正在查询mysql表,然后遍历结果。
其中一个字段的值为“0”,因此当我尝试以下操作时,它不起作用!
while ((row2 = mysql_fetch_row(resultset2)) != NULL) {
if (row2[2] != "0") {
// the field has a value of 0, but it's still executing the code here!
} else {
// should be executing this code
}
}
我知道C/C++在涉及到变量(取消链接php)时非常严格,但是我无法弄清楚这一点。有人有什么想法吗?
最佳答案
您正在将row2[2]
的指针char
与指向常量char
数组"0"
的指针进行比较。
如果您知道strcmp(row2[2], "0") != 0
始终是整数的字符串表示形式(并且不能是SQL std::string(row2[2]) != "0"
值),请使用atoi(row2[2]) != 0
(C解决方案),row2[2]
(C++解决方案)或NULL
。
关于c++ - linux c/c++-奇怪的if/else问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5408733/