一、PHP使用MYSQL数据库方式

本例主要是用PHP连接MYSQL数据库。通过相关语句对SQL语句的执行,达到操作数据库的目的。

1、实例

   
   
   
   
  1. $link_id=mysql_connect($hostname,$username,$password);    
  2. mysql_query("SET CHARACTER SET  utf8");    
  3. mysql_query("SET NAMES utf8");    
  4. $result=mysql_select_db("xyymg");    
  5. if( !$result )    
  6. {    
  7.     echo "连接数据库出错!";    
  8.     exit();    
  9. }    
  10. $search_sql_0 = "select webPicId, webPicTitle, webPicTime, webPicPath from web_pictable where webPicSort = $t_index";    
  11.             
  12.     $res_search_0 = @mysql_query("$search_sql_0");    
  13.     $num_records = @mysql_num_rows( $res_search_0 );        //记录行总数     
  14.             
  15.     $search_sql_1 = $search_sql_0." order by webPicId desc limit $init_record,$num_to_show";            
  16.     $res_search_1 = mysql_query("$search_sql_1");    
  17.     $t_picList = array();           
  18.             
  19.     if$res_search_1 )    
  20.     {           
  21.         while$r = mysql_fetch_row( $res_search_1 ) )    
  22.         {    
  23.             $t_picSaveSmallPath = "./".PIC_SAVE_SMALL_PATH.$r[3];    
  24.             $t_picList[] = array'id'=>$r[0], 'title'=>$r[1], 'ttime'=>timeToDate( $r[2] ), 'smallPicPath'=>$t_picSaveSmallPath );     
  25.         }       
  26.     }          

2、连接数据库

   
   
   
   
  1. $con = mysql_connect("localhost","peter","abc123");
  2. if (!$con)
  3. {
  4. die('Could not connect: ' . mysql_error());
  5. }
  6. // some code
  7. ?>

3、断开数据库

   
   
   
   
  1. $con = mysql_connect("localhost","peter","abc123");    
  2. if (!$con)    
  3.   {    
  4.   die('Could not connect: ' . mysql_error());    
  5.   }    
  6. // some code    
  7. mysql_close($con);    
  8. ?>   

4、用mysql_query() 执行SQL语句

5、从数据库表选取数据

   
   
   
   
  1. $con = mysql_connect("localhost","peter","abc123");    
  2. if (!$con)    
  3.   {    
  4.   die('Could not connect: ' . mysql_error());    
  5.   }    
  6. mysql_select_db("my_db"$con);    
  7. $result = mysql_query("SELECT * FROM person");    
  8. while($row = mysql_fetch_array($result))    
  9.   {    
  10.   echo $row['FirstName'] . " " . $row['LastName'];    
  11.   echo "";    
  12.   }    
  13. mysql_close($con);    
  14. ?>   

 

6、ODBC实例

   
   
   
   
  1.     
  2.     
  3. $conn=odbc_connect('northwind','','');    
  4. if (!$conn)    
  5.   {exit("Connection Failed: " . $conn);}    
  6. $sql="SELECT * FROM customers";    
  7. $rs=odbc_exec($conn,$sql);    
  8. if (!$rs)    
  9.   {exit("Error in SQL");}    
  10. echo "";    
  11. echo "
  12. ";    
  13. echo "
  14. ";    
  15. while (odbc_fetch_row($rs))    
  16. {    
  17.   $compname=odbc_result($rs,"CompanyName");    
  18.   $conname=odbc_result($rs,"ContactName");    
  19.   echo "
  20. ";    
  21.   echo "
  22. ";    
  23. }    
  24. odbc_close($conn);    
  25. echo "
  26. Companyname Contactname
    $compname $conname
    "
    ;    
  27. ?>    
  28.     
  29.  

二、VC连接数据库方式

本例使用VC连接Access数据库,连接方式为ADO

1、导入引用

   
   
   
   
  1. #import "c:\program files\common files\system\ado\msado15.dll"\    
  2. no_namespace rename( "EOF""adoEOF" )    

2、初始化COM组建

   
   
   
   
  1. CDbOpe::CDbOpe()    
  2. {    
  3.     CoInitialize(NULL);    
  4. }  

3、连接数据库

   
   
   
   
  1. //连数据库    
  2. BOOL CDbOpe::LinkDb(CString db, CString usr, CString psw)    
  3. {    
  4.     CString strDb;    
  5.     strDb.Format( _T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s"), db );    
  6.     m_pConnection.CreateInstance(__uuidof(Connection));    
  7.         
  8.     try{    
  9.         m_pConnection->Open( (_bstr_t)strDb,(_bstr_t)usr,(_bstr_t)psw,adModeUnknown);    
  10.     }    
  11.     catch(_com_error e )    
  12.     {    
  13.         CString   errMessage;       
  14.         errMessage.Format( _T("连接数据库失败!\r\n错误信息:%s"),(char*)e.Description());       
  15.         AfxMessageBox( errMessage );    
  16.         return FALSE;    
  17.     }    
  18.     return TRUE;    
  19. }   

4、执行SQL语句

   
   
   
   
  1. BOOL CDbOpe::OpenTable( CString sql )    
  2. {    
  3.     m_pRecordset.CreateInstance(__uuidof(Recordset));    
  4.     // 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,    
  5.     // 因为它有时会经常出现一些意想不到的错误。jingzhou xu    
  6.     try    
  7.     {    
  8.         m_pRecordset->Open( (_bstr_t)sql,// 查询DemoTable表中所有字段    
  9.         m_pConnection.GetInterfacePtr(),  // 获取库接库的IDispatch指针    
  10.         adOpenDynamic,    
  11.         adLockOptimistic,    
  12.         adCmdText);    
  13.     }    
  14.     catch(_com_error *e)    
  15.     {    
  16.         //AfxMessageBox(e->ErrorMessage());    
  17.         return FALSE;    
  18.     }    
  19.     return TRUE;    
  20. }  
   
   
   
   
  1. //执行SQL语句    
  2. BOOL CDbOpe::ExecutSql(CString sql)    
  3. {    
  4.     _variant_t RecordsAffected;    
  5.     try    
  6.     {    
  7.         m_pConnection->Execute( (_bstr_t)sql, &RecordsAffected, adCmdText);     
  8.         return TRUE;    
  9.     }    
  10.     catch(_com_error e )    
  11.     {    
  12.         AfxMessageBox( _T("执行SQL语句错误!") );    
  13.         return FALSE;    
  14.     }    

5、关闭记录集

   
   
   
   
  1. //关闭记录集    
  2. BOOL CDbOpe::CloseTable()    
  3. {    
  4.     if( m_pRecordset->State)    
  5.         m_pRecordset->Close();    
  6.     m_pRecordset = NULL;    
  7.     return TRUE;    
  8. }   

6、关闭连接

   
   
   
   
  1. //关闭连接    
  2. BOOL CDbOpe::CloseLink()    
  3. {    
  4.     CloseTable();    
  5.     if(m_pConnection->State)    
  6.          m_pConnection->Close();    
  7.     m_pConnection = NULL;      
  8.     return TRUE;    

7、释放COM资源

   
   
   
   
  1. CoUninitialize();  

8读取表数据相关代码

   
   
   
   
  1. //判断打开的记录集是否到了最后一行    
  2. BOOL CDbOpe::IsTalbeEnd()    
  3. {    
  4.     if( m_pRecordset->adoEOF )    
  5.         return TRUE;    
  6.     else    
  7.         return FALSE;    
  8. }    
  9. //向下一条移动    
  10. BOOL CDbOpe::MoveNext()    
  11. {    
  12.     if( !m_pRecordset->adoEOF )    
  13.     {    
  14.         m_pRecordset->MoveNext();    
  15.         return TRUE;    
  16.     }    
  17.     else    
  18.     {    
  19.         return FALSE;    
  20.     }    
  21. }    
  22. //取得字符串值    
  23. CString CDbOpe::GetStringValue(CString colName)    
  24. {    
  25.     CString strReturnValue = _T("");    
  26.     _variant_t var = m_pRecordset->GetCollect( (_bstr_t)colName );       
  27.     if(var.vt != VT_NULL)    
  28.         strReturnValue = (LPCSTR)_bstr_t(var);    
  29.     strReturnValue.TrimRight();     //移除右侧的空格    
  30.     return strReturnValue;