C言語からMySQLにアクセスしてバイナリ情報を INSERT としたいと思っています。
あるシステムが物理ファイル型DBを持っていましてMySQL化したいのです。
物理ファイル型DBは、
先頭にレコード件数(dataNum)
それ以降、データ名(dataName)、データ(data)、データ名、データ、データ名、データ....
データ名(char dataName[255])
データ(unsigned char data[1024])
という構造になっています。
テーブルの定義は
table
1id int(11) AUTO_INCREMENT 2dataName varchar(255) 3data varchar(1024) 4createDate datetime CURRENT_TIMESTAMP
ファイルを開き データ名、データを抽出することできています。
これを
C
1for (int i=0; i < dataNum; i++) { 2 printf(" id: %d = %s\n", i, dataName[i]); 3 snprintf( &sql_str[0] , sizeof(sql_str)-1 , " INSERT INTO testTable (dataName, data) VALUES ('%s', '%s')", dataName[i], data[i]); 4 if( mysql_query( conn , &sql_str[0] ) ){ 5 // error 6 printf("Error: %s\n ", mysql_error(conn)); 7 mysql_close(conn); 8 exit(-1); 9 } 10}
ビルドして実行すると
id: 0 = testName01 Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''�Rp�&QM?�>�b���*���M4��Om����8k{> ��>���<F}�?;' at line 1
とエラーになってしまいます。
根本的な考え方が間違っているのでしょうか?
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー