随笔-40  评论-66  文章-0  trackbacks-0
提交页面

插入

用户:
密码:
处理页面add2.cgi 代码 #include #include #include #include "sqlite3.h" #include "cgic.h" int cgiMain() { printf("Content-type:text/html\n\n"); printf(""); sqlite3 *db=NULL; char *zErrMsg = 0; int rc; rc = sqlite3_open("test.db", &db); if(rc){ printf("Can't open database\n"); //这里改了。要是按原先的,会提示stderr未定义,我不知道为什么。哪位朋友知道一定要告诉我哦。 sqlite3_close(db); exit(1); } else printf("open test.db successfully!\n"); char username[241]; cgiFormString("username", username, 241); fprintf(cgiOut, "username:
\n");
cgiHtmlEscape(username);
fprintf(cgiOut, "
\n"); char password[241]; cgiFormString("password", password, 241); fprintf(cgiOut, "password:
\n");
cgiHtmlEscape(password);
fprintf(cgiOut, "
\n"); char sql[300]={'\0'}; //不能用指针! //插入数据 sprintf(sql, "INSERT INTO \"user\" VALUES('%s', '%s');", username,password); //sql = "INSERT INTO \"user\" VALUES('username', 'password');" ; sqlite3_exec( db , sql , 0 , 0 , &zErrMsg ); printf(sql); printf("插入数据成功!\n"); int nrow = 0, ncolumn = 0; char **azResult; //二维数组存放结果 //查询数据 /* int sqlite3_get_table(sqlite3*, const char *sql,char***result , int *nrow , int *ncolumn ,char **errmsg ); result中是以数组的形式存放你所查询的数据,首先是表名,再是数据。 nrow ,ncolumn分别为查询语句返回的结果集的行数,列数,没有查到结果时返回0 */ char *sql2 = "SELECT * FROM user"; sqlite3_get_table( db , sql2 , &azResult , &nrow , &ncolumn , &zErrMsg ); int i = 0 ; printf( "row:%d column=%d
" , nrow , ncolumn ); printf( "\nThe result of querying is : \n" ); for( i=0 ; i<( nrow + 1 ) * ncolumn ; i++ ) printf( "azResult[%d] = %s
", i , azResult[i] ); //释放掉 azResult 的内存空间 sqlite3_free_table( azResult ); sqlite3_close(db); //关闭数据库 return 0; } 请注意数据库文件 test.db的访问权限! 这里改成777!
posted on 2008-03-01 17:11 Super·shen BLOG 阅读(1647) 评论(1)  编辑  收藏 所属分类: C语言与CGI CGIC Sqlite3

评论:
# re: 第一个 CGIC sqlite3 代码 2008-04-14 10:28 | 请问你是如何编译的
我是要移植到arm里,编译通过,但是显示不成功
add2.cgi:add2.c cgic.h cgic.c
arm-linux-gcc add2.c cgic.c -o add2.cgi -lsqlite3 -L/tmp/sqlite/lib -I/tmp/sqlite/include
显示的时候为was not CGI/1.1
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: