提交页面
<html>
<body onbeforeunload="RunOnBeforeUnload()">
插入
用户:
密码:
</body>
</html>
处理页面add2.cgi 代码
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "sqlite3.h"
#include "cgic.h"
int cgiMain() {
printf("Content-type:text/html\n\n");
printf("<head><meta http-equiv="\"Expires\"" content="\"0\""><meta http-equiv="\"Cache-Control\"" content="\"no-cache\""><meta http-equiv="\"Pragma\"" content="\"no-cache\""></head>");
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!
分享到:
相关推荐
cgi c语言中sqlite3的使用,调用sqlite3的api完成数据库的操作。
C语言编写的CGI库,代码和自带的测试程序
cgic很小只有两千多行代码,分析整个库函数,并且注释。
cgic_uploadfile.zip cgic_uploadfile.zip cgic_uploadfile.zip cgic_uploadfile.zip cgic_uploadfile.zip
CGIC中文手册,根据官方英文文档翻译而来。其中关于文件上传和COOKIE部分还不完整
用C语言库(CGIC)编写CGI,实现文件上传.doc
CGIC206开发库,CGI编写神器,懂得下载。
1.使用时,直接把cgic.c与cgic.h文件加入到你的工程中,然后在main.c中加上头文件#include "cgic.h"即可 2.main.c文件中int main()用int cgiMain()替代。在cgiMain()中编写代码,把它看成主函数。
cgic自己写的一个小测试,基于海思3531开发板
cgic在linux的安装文件 , 包含库文件
CGIC的公开全部原始代码,但商业应用需要支付相应授权费用获得许可。官方版本针对Gcc编译器发布,此为Lccwin32编译专用版。开发包中包含两个官方样例,我已经为Lccwin32进行了针对性修改。此开发包搭配之前我发布的...
如鹏网《C语言也能干大事之C语言开发网站》课程里的cgic软件开发包(解压即用),通过该开发包可将cgic源码打包封装,供给服务器解析
boa_cgic配置,里面包括所有内容,使用平台为zynq7010
适合初学嵌入式web开发的学员,就这样描述吧
cgic的函数参考 cgic的变量参考 cgic的结果编码参考
這是一份使用cgic資料庫來寫cgi的演示檔案
CGIC是一个功能比较强大的支持CGI开发的标准C库,并支持Linux,Unix和Windows等多操作系统。 boa与CGI工作机制:外部CGI程序与boa服务器进行通信、传递参数和处理结果是通过环境变量、命令行参数和标准输入来进行...
使用C语言的CGI库“CGIC”完成Web开发
通用的cgic共享库,对于cgi编程人员来说,调用通用的cgic共享库,能提高编程效率
cgic.h 与 cgic.c