以变量形式插入呢
时间: 2024-02-17 20:03:14 浏览: 25
在C语言中,你可以使用参数化查询语句来以变量形式插入数据。这样做可以避免SQL注入攻击,并且使程序更加安全。
以下是一个示例程序,演示如何使用MySQL连接库在C语言中以变量形式向数据库插入数据:
```
#include <mysql.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "username";
char *password = "password";
char *database = "database_name";
char *name = "John";
int age = 30;
// 初始化MySQL连接
conn = mysql_init(NULL);
// 连接到指定的数据库
if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
// 创建参数化查询语句
MYSQL_STMT *stmt;
stmt = mysql_stmt_init(conn);
mysql_stmt_prepare(stmt, "INSERT INTO table_name (name, age) VALUES (?, ?)", 38);
// 绑定参数
MYSQL_BIND bind[2];
bind[0].buffer_type = MYSQL_TYPE_STRING;
bind[0].buffer = (char *)name;
bind[0].buffer_length = strlen(name);
bind[1].buffer_type = MYSQL_TYPE_LONG;
bind[1].buffer = (char *)&age;
bind[1].buffer_length = sizeof(age);
mysql_stmt_bind_param(stmt, bind);
// 执行查询
mysql_stmt_execute(stmt);
// 断开MySQL连接
mysql_stmt_close(stmt);
mysql_close(conn);
return 0;
}
```
请注意,上面的代码仅作为示例,你需要根据你的实际情况进行适当的修改,例如更改连接信息、数据库和表名、列名和变量等。在实际应用中,你可能需要使用更复杂的查询语句和多个绑定变量。