c - 从c中的sqlite数据库中选择多个项目

标签 c sqlite embedded-linux

<分区>

我正在尝试在 c 中查询 sqlite, 之前我成功打开并向数据库插入了一些项目(返回 SQLITE_OK),当我查询总数据(“SELECT * FROM TRANS_TABLE ...”)时,我可以成功检索插入的数据但是当我尝试按特定项目查询时,我没有收到任何数据,我的代码有什么问题吗?

sql = "SELECT * FROM TRANS_TABLE WHERE F11_STAN = ?";

  cmdStat = sqlite3_prepare_v2(db, sql, -1, &res, 0);

  if (cmdStat == SQLITE_OK)
  {
  sqlite3_bind_text( res, 1,( char *)f11, strlen(( char *)f11), 0);
  }
  else
  {
      netLogMsg(( uint8_t*)sqlite3_errmsg(db));
      return ;
  }

  int step = sqlite3_step(res);

  if (step == SQLITE_ROW)
  {
    netLogMsg(( uint8_t *)sqlite3_column_text(res, 0));
    netLogMsg(( uint8_t *)sqlite3_column_text(res, 1));
  }
else if (step == SQLITE_DONE)
{
  //this line is executed !
  netLogMsg(( uint8_t *)sqlite3_errmsg(db));
}
  memcpy( f11, sqlite3_column_text(res, 1), strlen(( const char *)sqlite3_column_text(res, 1)));

  sqlite3_finalize(res);

最佳答案

尝试将 id 绑定(bind)到准备好的语句:

sql = "SELECT * FROM TRANS_TABLE WHERE F11_STAN = ?1";
cmdStat = sqlite3_prepare_v2(db, sql, -1, &res, 0);
sqlite3_bind_int(res, 1, 5);  

关于c - 从c中的sqlite数据库中选择多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50543502/

相关文章:

.net - SQLite EF6 在运行时以编程方式设置连接字符串

java - 在 sqlite 数据库中插入信息不起作用

ios - 我的 sqlite 查询(更新)在 iOS 中看起来不工作

c++ - BeagleBone Black 通过内核驱动中断

c - C 函数调用中的默认参数提升

Python TEA 实现

c - 如何在 C 中从文件的一行定义变量

c - 使用线程时 printf 无法正常工作

linux - bitbake rootfs large for core image minimal

c++ - 带有线程包装器 unique_ptr 的双端队列