//預處理方式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 忽略的處理方式,這個方式和預設的忽略...
遇事處理方式
事,慢慢地說 大事,清楚地說 小事,幽默地說 沒把握的事,謹慎地說 沒發生的事,不要胡說 做不到的事,別亂說 傷害人的事,不能說 討厭的事,對事不對人地說 開心的事,看場合說 傷心的事,不要見人就說 別人的事,小心地說 自己的事,聽聽自己的心怎麼說 現在的事,做了再說 未來的事,未來再說 知人不必言...