sql命令中放入形参,总是查询失败,我写错哪里了?

为什么我的sql命令总是询问失败,我的代码错在哪里了?

#include 
#include
#include 
#include 
#include 
#include  //因为要进行网络连接
#include  //因为使用了MySQL C API访问mysql数据库
#include  // easyX库文件
void query_database(LPCTSTR exam_name);
int main() {
    // 初始化EasyX窗口
    initgraph(640, 480);
    // 创建输入框
    TCHAR exam_name[100];
    InputBox(exam_name, 100, _T("请输入考试名称"), _T("制作试卷"), _T(""), 0, 0, false);
    query_database(exam_name);
    // 关闭EasyX窗口
    closegraph();
}

void query_database(LPCTSTR exam_name)
{
    MYSQL mysql;
    mysql_init(&mysql);
    if (!mysql_real_connect(&mysql, "localhost", "root", "", "student", 0, NULL, 0)) {
        printf("连接数据库失败");
    }

    char query[100];
    sprintf(query, "SELECT * FROM '%s';", exam_name);
    // 执行查询
    int res = mysql_query(&mysql, query);
    if (res) {
        // 查询失败
        printf("查询失败");
        mysql_close(&mysql);
    }
    // 获取查询结果集
    MYSQL_RES *result = mysql_store_result(&mysql);
    if (result) {
        // 获取结果集的行数
        int num_rows = mysql_num_rows(result);
        if (num_rows > 0) {
            // 有重复的exam_name
            printf("该考试名称已存在,请重新输入!\n");
        }
        // 释放结果集
        mysql_free_result(result);
    } else {
        // 获取结果集失败
        printf("结果集失败");
    }
    // 关闭数据库连接
    mysql_close(&mysql);
}

“Devil组”引证GPT后的撰写:
在MySQL中,表名不应该用单引号括起来。应该改为:

sprintf(query, "SELECT * FROM %s;", exam_name);


建议在执行SQL语句前检查一下数据库连接是否成功,如下所示:

if (mysql_ping(&mysql) != 0) {
    printf("数据库连接失败");
    return;
}


试试
sprintf(query, "SELECT * FROM %s;", exam_name);
一个注意的点是引号,一个注意的点是分号。
(建议少出现中文,乱码也会有影响hh)