MySQL 預處理方式api處理

2021-08-09 15:19:04 字數 3978 閱讀 2749

//預處理方式api處理

#include #include "mysql.h"

#include #include #define _host_ "localhost" //主機

#define _user_ "root" //mysql使用者,非主機

#define _passwd_ "123" //密碼

#define _dbname_ "scott" //庫名

#define string_size 50

#define drop_sample_table "drop table if exists test_table"

#define create_sample_table "create table test_table(col1 int,\

col2 varchar(40),\

col3 smallint,\

col4 timestamp)"

#define insert_sample "insert into test_table(col1,col2,col3) values(?,?,?)"

void prepare_insert(mysql *mysql);

int main()

//2.連線

mysql = mysql_real_connect(mysql, _host_,_user_, _passwd_,_dbname_, 0, null,0);

if(mysql == null)

printf("welcome to mysql \n");

prepare_insert(mysql);

//3.關閉

mysql_close(mysql);

return 0;

}void prepare_insert(mysql *mysql)

if (mysql_query(mysql, create_sample_table))//建立表

/* prepare an insert query with 3 parameters */

/* (the timestamp column is not named; the server */

/* sets it to the current date and time) */

stmt = mysql_stmt_init(mysql); //預處理的初始化

if (!stmt)

if (mysql_stmt_prepare(stmt, insert_sample, strlen(insert_sample))) //insert 語句 的預處理

fprintf(stdout, " prepare, insert successful\n");

/* get the parameter count from the statement */

param_count= mysql_stmt_param_count(stmt);//獲得引數個數

fprintf(stdout, " total parameters in insert: %d\n", param_count);

if (param_count != 3) /* validate parameter count */

/* bind the data for all 3 parameters */

memset(bind, 0, sizeof(bind));

/* integer param */

/* this is a number type, so there is no need to specify buffer_length */

bind[0].buffer_type= mysql_type_long;

bind[0].buffer= (char *)&int_data;//記憶體位址的對映

bind[0].is_null= 0;

bind[0].length= 0;

/* string param */

bind[1].buffer_type= mysql_type_string;

bind[1].buffer= (char *)str_data;//char 100

bind[1].buffer_length= string_size;

bind[1].is_null= 0;

bind[1].length= &str_length;

/* smallint param */

bind[2].buffer_type= mysql_type_short;

bind[2].buffer= (char *)&small_data;

bind[2].is_null= &is_null;//是否為null的指示器

bind[2].length= 0;

/* bind the buffers */

if (mysql_stmt_bind_param(stmt, bind)) //繫結變數 引數繫結

//第一波賦值

int_data= 10; /* integer */

strncpy(str_data, "mysql", string_size); /* string */

str_length= strlen(str_data);

/* insert smallint data as null */

is_null= 1;//指示插入的第三個字段是否為null

//insert into test_table(col1,col2,col3) values(10,'mysql',null);

/* execute the insert statement - 1*/

if (mysql_stmt_execute(stmt)) //預處理的執行,第一次執行

/* get the total number of affected rows */

affected_rows= mysql_stmt_affected_rows(stmt);//預處理的影響條數

fprintf(stdout, " total affected rows(insert 1): %lu\n",

(unsigned long) affected_rows);

if (affected_rows != 1) /* validate affected rows */

//第二波賦值

int_data= 1000;

strncpy(str_data, "the most popular open source database", string_size);

str_length= strlen(str_data);

small_data= 1000; /* smallint */

is_null= 1; /* reset */

//insert into test_table(col1,col2,col3) values(1000,'the most popular open source database',1000);

/* execute the insert statement - 2*/

if (mysql_stmt_execute(stmt))//第二次執行

/* get the total rows affected */

affected_rows= mysql_stmt_affected_rows(stmt);

fprintf(stdout, " total affected rows(insert 2): %lu\n",

(unsigned long) affected_rows);

if (affected_rows != 1) /* validate affected rows */

/* close the statement */

if (mysql_stmt_close(stmt))

}

caffe中各語言預處理方式

一 caffe預處理方式 caffe有c matlab和python三種實現方法,每種方法的預處理方式各不相同。1.1 c 讀入 c 用opencv讀入的是bgr格式,cv 32fc3,0 255之間,h,w,c 排列,需要用warpinputlayer轉換成 c,h w 排列 c代表通道數,h代表...

SIGCLD處理方式

apue上sigcld語義寫的有點不清楚,到底我們的系統是如何來處理sigcld訊號呢?1.sig dfl 預設的處理方式是不理會這個訊號,但是也不會丟棄子進行狀態,所以如果不用wait,waitpid 對其子進行進行狀態資訊 會產生殭屍程序。2.sig ign 忽略的處理方式,這個方式和預設的忽略...

遇事處理方式

事,慢慢地說 大事,清楚地說 小事,幽默地說 沒把握的事,謹慎地說 沒發生的事,不要胡說 做不到的事,別亂說 傷害人的事,不能說 討厭的事,對事不對人地說 開心的事,看場合說 傷心的事,不要見人就說 別人的事,小心地說 自己的事,聽聽自己的心怎麼說 現在的事,做了再說 未來的事,未來再說 知人不必言...