Linux C 调用MYSQL API 函数mysql_escape_string()转义插入数据

Title:Linux C 调用MYSQL API 函数mysql_escape_string()转义插入数据 --2013-10-11 11:57

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "mysql.h"

int main(int argc, char *argv[])
{
    MYSQL my_connection;
    int res;
    mysql_init(&my_connection);
    char UNAMES[50];
    char sql_insert[400];
    char *p[5];
    p[0]="123456";
    p[1]="Fuc‘a‘k";
    p[2]="127.0.0.1";
    p[3]="2013-09-26 10:10:10";
    p[4]="1";

    /*mysql_real_connect(&mysql,host,user,passwd,dbname,0,NULL,0) == NULL)*/
    if (mysql_real_connect(&my_connection, "127.0.0.1", "root", "FuckFuck","databasename",0,NULL,CLIENT_FOUND_ROWS))
    {
        printf("Connection success\n");
        mysql_escape_string(UNAMES,p[1],strlen(p[1]));
        snprintf(sql_insert, sizeof(sql_insert),"insert into `tablename` (`C1`,`C2`,`C3`,`C4`,`C5`) values (‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘);",p[0],UNAMES,p[2],p[3],p[4]);
        res = mysql_query(&my_connection,sql_insert);

        if (!res)
        {
            printf("Inserted %lu rows\n",(unsigned long)mysql_affected_rows(&my_connection));
            printf("%s------\n",sql_insert);
            printf("%s------\n",UNAMES);
        /*里头的函数返回受表中影响的行数*/
        }
        else
        {
        //分别打印出错误代码及详细信息
        fprintf(stderr, "Insert error %d: %s\n",mysql_errno(&my_connection),mysql_error(&my_connection));
        }
        mysql_close(&my_connection);
    }

    else
    {
        fprintf(stderr, "Connection failed \n");

        if (mysql_errno(&my_connection))
        {
                fprintf(stderr, "Connection error %d: %s\n",mysql_errno(&my_connection),mysql_error(&my_connection));
        }
    }
    return EXIT_SUCCESS;
}

  

时间: 2024-10-06 10:30:05

Linux C 调用MYSQL API 函数mysql_escape_string()转义插入数据的相关文章

VBS调用windows api函数(postmessage)实现后台发送按键脚本

'=========================================================================='' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 4.0'' NAME: '' AUTHOR: Microsoft , Microsoft' DATE : 2014/8/10'' COMMENT: ''===================定义变量,注册

Python调用Windows API函数编写录音机和音乐播放器

功能描述: 1)使用tkinter设计程序界面: 2)调用Windows API函数实现录音机和音乐播放器. . 参考代码: ? 运行界面: ? 原文地址:https://www.cnblogs.com/7758520lzy/p/12149931.html

Mysql向表中循环插入数据

今天学习Mysql,做实验时想向一个标准插入1000行数据,在oracle中类似于这样 begin for i in 1..1000 loop insert .. end loop; end; / 但是Mysql中不支持匿名块 百度了一下,方法如下: 首先设置delimiter delimiter的作用:告诉解释器,这段命令是否已经结束了,mysql是否可以执行了 默认情况下,delimiter是':'但是当我们编写procedure时,如果是默认设置,那么一遇到':',mysql就要执行,这是

Linux环境下MySQL数据库用SQL语句插入中文显示 “问号或者乱码 ” 问题解决!

问题: 在普通用户权限下执行 mysql -u root -p进入mysql数据库,中间步骤省略,插入数据:insert into 库名(属性)values('汉字'); 会出现如下提示:  Query OK, 1 row affected, 1 warning (0.00 sec)    表明出现错误,没有插入成功,然后执行select * from 表名   就会出现如下的问题:显示的表中出现乱码或者问号. 如图: 解决方案: 首先重新打开一个终端窗口(方便操作),进入root用户模式 执行

MySQL API函数

MySQL提供了很多函数来对数据库进行操作,大致可以分为以下几类:        第一部分 控制类函数         mysql_init()初始化MySQL对象    mysql_options()设置连接选项     mysql_real_connect()连接到MySQL数据库        mysql_real_escape_string()将查询串合法化     mysql_query()发出一个以空字符结束的查询串     mysql_real_query()发出一个查询串    

C# 通过调用Win32 API函数清除浏览器缓存和cookie

public enum ShowCommands : int { SW_HIDE = 0, SW_SHOWNOrmAL = 1, SW_NOrmAL = 1, SW_SHOWMINIMIZED = 2, SW_SHOWMAXIMIZED = 3, SW_MAXIMIZE = 3, SW_SHOWNOACTIVATE = 4, SW_SHOW = 5, SW_MINIMIZE = 6, SW_SHOWMINNOACTIVE = 7, SW_SHOWNA = 8, SW_RESTORE = 9, S

mysql下通过shell脚本插入数据

一.创建数据库及表 建立数据库 create database dic character set utf8; 建表 CREATE TABLE `dic` (   `id` int(22) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',   `principal` varchar(213) CHARACTER SET utf8 NOT NULL COMMENT '负责人',   `use` varchar(222) CHARACTER SET utf

使用JDBC在MySQL数据库中快速批量插入数据

使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(10W+),如何提高效率呢? 在JDBC编程接口中Statement 有两个方法特别值得注意: void addBatch() throws SQLException Adds a set of parameters to this PreparedStatement object's batch of commands. int[] executeBatch() throws SQLException Submits

mysql建库建表插入数据

#!/bin/bash user="root" password="123456" mycmd="mysql -u$user -p$password" for dbname in tec stu do $mycmd -e "create database $dbname;" $mycmd -e "use $dbname;create table test(id int,name varchar(18));insert