以下是一个使用C语言编写的MySQL预处理的示例代码,实现了从数据库中获取信息并释放资源:
#include <stdio.h>#include <stdlib.h>#include <mysql/mysql.h>int main() {MYSQL *conn;MYSQL_STMT *stmt;MYSQL_BIND params[1];MYSQL_RES *result;MYSQL_ROW row;// 初始化连接conn = mysql_init(NULL);// 建立连接if (mysql_real_connect(conn, "localhost", "username", "password", "database_name", 0, NULL, 0) == NULL) {fprintf(stderr, "%s\n", mysql_error(conn));exit(1);}// 准备预处理语句stmt = mysql_stmt_init(conn);const char *sql = "SELECT name FROM users WHERE age > ?";if (mysql_stmt_prepare(stmt, sql, strlen(sql))) {fprintf(stderr, "%s\n", mysql_error(conn));exit(1);}int age = 30;// 绑定参数memset(params, 0, sizeof(params));params[0].buffer_type = MYSQL_TYPE_LONG;params[0].buffer = &age;if (mysql_stmt_bind_param(stmt, params)) {fprintf(stderr, "%s\n", mysql_error(conn));exit(1);}// 执行查询if (mysql_stmt_execute(stmt)) {fprintf(stderr, "%s\n", mysql_error(conn));exit(1);}// 获取结果集合并打印数据result = mysql_stmt_result_metadata(stmt);while ((row = mysql_fetch_row(result))) {printf("%s\n", row[0]);}// 释放资源mysql_free_result(result);mysql_stmt_close(stmt);mysql_close(conn);return 0;}
请根据实际情况修改数据库连接信息、查询语句和参数绑定方式。记得使用正确的用户名、密码、数据库名以及相应的表和字段名。
内容由零声教学AI助手提供,问题来源于学员提问




