PHPからCへの書き換え
以下の部分を
/*
define ('DB_FILE', 'image_tes.db');
define ('IMAGE_FILE', 'sample.gif');
$dbh = sqlite_open (DB_FILE);
if (filesize(DB_FILE) == 0)
{ sqlite_query($dbh, 'create table thread (image blob)'); }
$image = sqlite_escape_string (file_get_contents (IMAGE_FILE));
sqlite_query ($dbh, "insert into thread (image) values ('$image')");
sqlite_close ($dbh);
書き換えたのですが、
rc = sqlite3_open(image_tes.db, &db);
if( rc ){
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
rc = sqlite3_exec(db, "create table thread (image blob)", callback, 0, &zErrMsg);
if( rc!=SQLITE_OK ){
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
$image = sqlite_escape_string (file_get_contents (IMAGE_FILE));
rc = sqlite3_exec(db, "insert into thread (image) values ('$image')", callback, 0, &zErrMsg);
if( rc!=SQLITE_OK ){
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
当然ですが、
$image = sqlite_escape_string (file_get_contents (IMAGE_FILE));
rc = sqlite3_exec(db, "insert into thread (image) values ('$image')", callback, 0, &zErrMsg);
のあたりでエラーとなります。
c言語ではどのように書いたら
同じ内容になるのでしょうか?
いま、sqliteの関数をcのプログラムの中から直接呼び出して
使おうとしています。
VC++2005 OS2000
で製作しています。
blobデータが保存できれば良いのですが
苦労しています。
$image = sqlite_escape_string (file_get_contents (IMAGE_FILE));
特に、この上の部分の意味を教えていただければ
何とかなりそうです。
よろしくお願いします。
お礼
ご回答ありがとうございます。 何もしていないのに、スタティックファイルを 読み込むことが出来、ウィザードで設定することが 出来ました。 ありがとうございました。