C实现html页面的跳转

初次学习写CGI,而且是初次使用比较少见的CCGI方式,最终解决了如下问题:

1.C实现sqlite3数据库的操作,含数据库的建立、打开、插入、查询、删除、更新、关闭等操作;

2。实现了我觉得十分重要的使用C来实现CGI页面的跳转,其实就是一句话:如下

printf("<script>window.location.href='/login_err.html';</script>");//实现页面的自动跳转

 

附1:c实现的数据库操作代码

//此代码是实现数据库的操作:新建/打开、插入、删除、查询等操作

#include<stdio.h>
#include<sqlite3.h>
#include<stdlib.h>
#include<string.h>

int main()
{
    char *name="lxf",*psw="lxf";
    int id=1;
    sqlite3 *db=NULL;
    char *zErrMsg=0;
    char *sql;
    int rc;
    int nRow,nColum;
    char **selResult;
    int i,j,k;
    char *callbackData="Callback function called";
    int selectId=1;
    rc=sqlite3_open("my.db",&db);
    if(rc)
    {
        fprintf(stderr,"Can't open database:%s",sqlite3_errmsg(db));
        sqlite3_close(db);
        exit(1);
    }
    else
    {
        printf("You have open a sqlite database named myfirst.db successfully!/n");
    }

    //定义插入数据的sql语句
    sql="INSERT INTO T_User  VALUES(1,'lxf','lxf','0')";
//执行sql语句
    rc=sqlite3_exec(db,sql,NULL,NULL,&zErrMsg);
    if(rc!=SQLITE_OK)
    {
        if(zErrMsg!=NULL)
        {
            fprintf(stderr,"SQL error:%s/n",zErrMsg);
            sqlite3_free(zErrMsg);
        }
    }
    else
    {
        printf("Insert OK...");
    }

//查询数据
    sprintf(sql,"select * from T_User where P_UserID='%d'",id);
    rc=sqlite3_get_table(db,sql,&selResult,&nRow,&nColum,&zErrMsg);
   if(SQLITE_OK==rc)    
    {
        if(nRow!=0)    
        {
            for(i=0;i<nRow+1;i++)
            {
                for(j=0;j<nColum;j++)
                {
                    fprintf(stdout,"%s/t",selResult[(i)*nColum+j]);
                }
                printf("/n");
            }
        }
        else
        {
            printf("No data.../n");
        }
    }
    else
    {
        printf("select error.../n");
    }
//释放selResult存储空间
    sqlite3_free_table(selResult);

//删除数据delete
    sql="delete from T_User where P_UserID=1";
    rc=sqlite3_exec(db,sql,NULL,NULL,&zErrMsg);
    if(SQLITE_OK==rc)
    {
        printf("Delete OK.../n");
    }
    else
    {
        printf("delete error.../n");
    }
//再次查看
    sql="select * from T_User;";
    rc=sqlite3_get_table(db,sql,&selResult,&nRow,&nColum,&zErrMsg);
    if(SQLITE_OK==rc)    
    {
    
        for(i=0;i<nRow+1;i++)
        {
            for(j=0;j<nColum;j++)
            {
                fprintf(stdout,"%s/t",selResult[(i)*nColum+j]);
            }
            printf("/n");
        }
    }
    else
    {
        printf("select error.../n");
    }
//释放selResult存储空间
    sqlite3_free_table(selResult);
    sqlite3_close(db);
    exit(0);
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值