45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全
页面导航: 首页 > 电脑学院 > 服务器技术 >

Linux下mSQL数据库开发技术

电脑软硬件应用网 45IT.COM 时间:2005-12-30 20:14 作者:45IT收集


  mSQL(mini SQL)是一个单用户数据库管理系统,由于它的短小精悍,使其开发的应用系统特别受到互联网用户青睐。在Linux基础上的Web管理系统,用mSQL数据库进行数据管理,可以取得良好的运行效果。

  首先就是下载。到站点www.hughes.com.au注册后就能免费下载该软件的最新版本。

  mSQL的安装相当简单,二进制版本(针对某一个硬件平台编译后的软件)的安装只是将文件展开到用户某一目录下然后配置几个参数就可以。例如你下载的文件为:mSQL-2.0.3.tar.gz,你想把mSQL安装到/usr/local目录下,这时,我们需要先将这个文件拷贝到/usr/local这个目录,然后键入命令tar zxvf mSQL-2.0.3.tar.gz,这个命令将展开该压缩文件。一般,mSQL数据库系统的所有文件都安装到/usr/local/Hughes目录下。接着就是配置mSQL数据库。你所要做的工作就是要修改/usr/local/Hughes目录下的文件msql.conf。

  在实际应用中我们改动得最多的是mSQL—User 和Admin—User这两个参数。mSQL—User指明运行mSQL数据库服务程序的用户,而Admin—User指明能对mSQL数据库系统执行特权操作(如:关闭数据库服务程序的运行,创建数据库等操作)的用户。因此,如果希望mSQL服务程序以database这个用户运行,指定admin这个用户能执行数据库操作,要将mSQL—User和Admin—User所在的行分别改为:mSQL—User = database和Admin—User = admin。另外你还必须将Hughes目录下的文件和目录的属主改为database。在配置完成后,注销当前用户的身份,重新以msql.conf的参数 mSQL—User设定的用户登录到系统,进入/usr/local/Hughes/bin目录键入如下的命令:./msql2d &,这样就启动了mSQL数据库系统。至于带源码的安装软件,看一看README和INSTALL这些文件一般就能顺利安装完成。

  为了将mSQL集成到用户的应用程序中去,mSQL数据库系统为用户提供了一个C语言的API库和一个解释器:w3—msql,通过C语言的API库,你可以将mSQL集成到用标准C语言开发的应用程序中去。而有了w3—msql这个工具,你可以通过编写类C语言脚本语言将mSQL数据库嵌入到html文件中,下面举一程序实例进行说明。

  下面的程序片段要完成的功能是将浏览器页面上提交上来的用户名和口令与表registered—user中的用户名和口令相比较,如果用户名和口令正确,将在页面上显示注册成功的信息,否则提示用户注册失败。采用C语言实现的方法如下所示: 

  void main(int argc, char ?argv[])
  { 
   //解析用户提交上来的用户名和口令并保存到变量username和password—usr中 

   … 

   //创建与本机的mSQL数据库系统的套接字
   sock=msqlConnect(NULL);
   //选择数据库test 
   if (msqlSelectDB(sock,″test″)==-1)
   {    //输出数据库选择失败信息 

   … 

   } else 
   { 

  sprintf(buff,″select ? from registered—user where username=′%s′″,username); 
  //以username查询表registered—user中的记录 
  if (msqlQuery(sock,buff)==-1) 

//输出查询失败的错误信息 

   … 

  } 

  //将查询结果保存到m—result类型的指针变量 res 

  res=msqlStoreResult(); 

  //得到查询结果的记录数 

  numrow=msqlNumRows(res); 
  if (numrow==1) 
  { 
   //得到当前记录,类型为:m_row 
   row=msqlFetchRow(res); 
   //将保存在表中的口令和用户输入的口令相比较 
   if (!strcmp(password_ur,row[2])) 
   { 
   //输出注册成功信息 
   } else 
   { 
    //输出口令不对的提示信息 

   } 
  } else 
  { 
   //输出用户名输入出错信息 
  } 
   }
   //释放查询结果的指针 
   msqlFreeResult(res); 
   //关闭数据库系统的套接字 
   msqlClose(sock); 
   return; 
  } 

  以上的例子包含有将mSQL集成到C语言程序中用到的主要函数,这些函数基本能满足应用程序的需要。如果采用w3—msql能解释的类C语言嵌入到html文件中,可以达到同样的功能。与C语言编写的CGI程序需要编译不同,脚本语言不需要编译,该脚本由mSQL数据库系统提供的CGI程序w3—msql来解释执行。脚本中主要的代码段如下所示: 
 
  〈HTML〉 
  〈HEAD〉 
  〈META HTTP-EQUIV=″Content-Type″ CONTENT=″text/html;charset=iso-8859-1″〉 
  〈/HEAD〉 
  〈body TEXT=″#000000″ BACKGROUND=″/icon/back.jpg″ topmargin=″10″〉 
  〈! 
  //解析用户提交上来的用户名和口令并 
  保存到变量username和password—usr中 

  … 

  //创建与本机的mSQL数据库系统的套接字 
  $sock = msqlConnect(); 
  //选择数据库test 
  if (msqlSelectDB($sock,″test″)==-1) 
  { 
   //输出数据库选择失败信息 
   fatal(″错误 : 无法与数据库连接\n″); 
  } else 
  { 
   $buff = ″ select ? from registered—user where username=′$username ′″; 
   //以username查询表registered—user中的记录 
   if (msqlQuery($sock,$buff)==-1) 
   { 
    //输出查询失败的错误信息 
    fatal(″查询错误\n″); 
   } 
   //将查询出来的结果保存到查询结果的指针变量res中 
   $res=msqlStoreResult(); 
   //得到查询结果的记录数目 
   $numrow=msqlNumRows($res); 
   if ($numrow==1) 
   { 
  //得到当前记录的指针 
  $row=msqlFetchRow($res); 
  //将保存在表中的口令和用户输入的口令相比较 
  if (!strcmp($password—ur,$row[2])) 
  { 
  //输出注册成功信息 
   echo(″〈center〉注册成功〈/center〉″); 
  } else 
  { 
//输出口令不对的提示信息 
   echo(″〈center〉您输入的口令不正确〈/center〉″); 
  } 
   } else 
   { 
   //输出用户名输入出错信息 
   echo(″〈center〉您输入的用户名不正确〈/center〉″); 
   }
  }
  //释放查询结果占用的内存 
  msqlFreeResult($res); 
  //关闭数据库系统的套接字 
  msqlClose($sock); 
  〉
  〈/BODY〉
〈/HTML〉 

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐知识