ZBLOG

编写c语言demo,实现使用mysql预处理进行信息的获取并释放资源

以下是一个使用C语言编写的MySQL预处理的示例代码,实现了从数据库中获取信息并释放资源:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <mysql/mysql.h>
  4. int main() {
  5. MYSQL *conn;
  6. MYSQL_STMT *stmt;
  7. MYSQL_BIND params[1];
  8. MYSQL_RES *result;
  9. MYSQL_ROW row;
  10. // 初始化连接
  11. conn = mysql_init(NULL);
  12. // 建立连接
  13. if (mysql_real_connect(conn, "localhost", "username", "password", "database_name", 0, NULL, 0) == NULL) {
  14. fprintf(stderr, "%s\n", mysql_error(conn));
  15. exit(1);
  16. }
  17. // 准备预处理语句
  18. stmt = mysql_stmt_init(conn);
  19. const char *sql = "SELECT name FROM users WHERE age > ?";
  20. if (mysql_stmt_prepare(stmt, sql, strlen(sql))) {
  21. fprintf(stderr, "%s\n", mysql_error(conn));
  22. exit(1);
  23. }
  24. int age = 30;
  25. // 绑定参数
  26. memset(params, 0, sizeof(params));
  27. params[0].buffer_type = MYSQL_TYPE_LONG;
  28. params[0].buffer = &age;
  29. if (mysql_stmt_bind_param(stmt, params)) {
  30. fprintf(stderr, "%s\n", mysql_error(conn));
  31. exit(1);
  32. }
  33. // 执行查询
  34. if (mysql_stmt_execute(stmt)) {
  35. fprintf(stderr, "%s\n", mysql_error(conn));
  36. exit(1);
  37. }
  38. // 获取结果集合并打印数据
  39. result = mysql_stmt_result_metadata(stmt);
  40. while ((row = mysql_fetch_row(result))) {
  41. printf("%s\n", row[0]);
  42. }
  43. // 释放资源
  44. mysql_free_result(result);
  45. mysql_stmt_close(stmt);
  46. mysql_close(conn);
  47. return 0;
  48. }

请根据实际情况修改数据库连接信息、查询语句和参数绑定方式。记得使用正确的用户名、密码、数据库名以及相应的表和字段名。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=7499

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?