mysql - 循环遍历数据库表并比较用户输入

标签 mysql c

我正在尝试循环遍历 MySql 表中的行,并使用 C 将特定列中的数据与某些用户输入进行比较。目前我的代码如下所示:

MYSQL *cxn = mysql_init(NULL);
MYSQL_RES *result;
unsigned int num_fields;
unsigned int num_rows;
char *query_string;
MYSQL_ROW *row;

if (mysql_real_connect(cxn, <em>/*blah blah blah**/</em>) == NULL) {
  printf("Please restart the service.");
}

result = mysql_store_result(cxn);
num_rows = mysql_num_rows(result);
num_fields = mysql_num_fields(result);

while (row = mysql_fetch_row(result)) {
  for (i = 0; i < num_fields; i++) {
    //Confusion occurring here
    //if (field[i] @ currentRow == "User input")
    //  printf("Win");
  }
}

最佳答案

如果您只想查找与输入匹配的字段,则需要使用输入字符串搜索数据库。换句话说,编写查询字符串,以便它只提供与用户输入匹配的结果。这比在每个返回的行中搜索用户输入要快得多。

从表中选择 * WHERE Cars=input

如果您确实需要返回每一行,那么您会希望代码读取如下内容

while (row = mysql_fetch_row(result)) {
  for (i = 0; i < num_fields; i++) {
    //Confusion occurring here
    //if (row[i] == "User input") You can't compare strings in C with ==
    if(strcmp(row[i], user_input) == 0))
      printf("Win");
  }
}

但是,如果您的用户输入是字符串,您将需要使用 strcmp 进行比较。

if(strcmp(row[i], user_input) == 0))

关于mysql - 循环遍历数据库表并比较用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30987862/

相关文章:

php - PHP 和 MySQL 之间的周数差异

在调整大小之前,更改窗口的边框厚度不会显示?

c - 安装第 3 方库以在我的 C 程序中使用

c - 类真的是下一个 C 标准的当前提案吗?

c - SDL 图像显示速度比预期慢

php - 使用 PHP 在产品详细信息页面上向一个产品添加多个图像

PHP/MySQL : importing CSV, 所有日期和小数值均为空、零

php - MySQL 表中的 64 位密码哈希

php - CodeIgniter 搜索查询

c - 将结构数组传递给函数