随笔- 97  评论- 70  文章- 0 

php連mssql,access的方法 js連接access數據庫

 

一、php連mssql
$dbhost = '';
$dbuser = ''; //你的mssql用户名
$dbpass = ''; //你的mssql密码
$dbname = ''; //你的mssql库名

$connect=odbc_connect("Driver={SQL Server};Server=$dbhost;Database=$dbname","$dbuser","$dbpass");
$sql="select * from content";
$exec=odbc_exec($connect,$sql);
while($row = (odbc_fetch_array($exec)))
{
 $row['id']  //獲取字段值
 ...
}

 


二、php連access
$db=$_SERVER['DOCUMENT_ROOT']."/PHP_ACCESS/include/#mydb.mdb";   //這裏最好用$_SERVER['DOCUMENT_ROOT']獲取路徑
$conn = new COM('ADODB.Connection') or die('can not start Active X Data Objects');
$conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db");
     $rs = $conn->Execute('SELECT * FROM contents order by id desc');
     while(!$rs->EOF) 
            {
              echo $rs->Fields['name']->Value;
              $rs->MoveNext();
     }
   /*释放资源*/
   $rs->Close();
      $conn->Close();
      $rs = null;
      $conn = null;


Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft OLE DB Provider for ODBC Drivers<br/><b>Description:</b> [Microsoft][ODBC Microsoft Access Driver] Disk or network error.'
(*  xp上出現上述錯誤,但在2003上能正常運行,可能與電腦ODBC配置有關)???????

 

 

 

 

 

 

三、js連接access數據庫

 

scEngine.js文件

//仿数据库连接池类
function scDBPool(){
    try{
         this.con=new ActiveXObject("ADODB.Connection");
         this.con.Provider="Microsoft.Jet.OLEDB.4.0";
         this.rs=new ActiveXObject("ADODB.Recordset");
    }catch(e){
         this.con=null;
         this.rs=null;
    }
    this.filePath=null;
    this.dbPath=null;
};


//设置数据库文件相对(定位文件)路径和数据库名
scDBPool.prototype.setDB=function(dbPath){
    this.dbPath=dbPath;
};

//设置数据库定位文件,这一步可以进连接类中,这里写是方便使用任何名字的数据库
scDBPool.prototype.setDBPathPosition=function(urlFile){
    var filePath=location.href.substring(0, location.href.indexOf(urlFile));
    this.dbPath=(this.dbPath==null||this.dbPath=="") ? "/calendar.mdb" : this.dbPath;
    var path=filePath+this.dbPath;
   //去除path前面的"files://"字符串
    this.filePath=path.substring(8);
};

//同数据库建立连接
scDBPool.prototype.connect=function(){
 this.filePath="C:\\Documents and Settings\\zhen.wang\\Desktop\\js_calendar\\calendar.mdb";    //access路徑
    this.con.ConnectionString="Data Source="+this.filePath;
 //alert(this.con.ConnectionString);
    this.con.open;
};

//执行数据库语句返回结果集
scDBPool.prototype.executeQuery=function(sql){
    this.rs.open(sql,this.con);
};

//执行数据库语句不返回结果集
scDBPool.prototype.execute=function(sql){
    this.con.execute(sql);
};

//关闭结果集
scDBPool.prototype.rsClose=function(){
    this.rs.close();
    this.rs=null;
};

//关闭数据连接
scDBPool.prototype.conClose=function(){
    this.con.close();
    this.con=null;
};

 

 


調用:
<html>
<head><title>ddd</title>
<script language="javascript" src="scEngine.js"></script>
</head>
<body>

<script language="javascript">
var db=new scDBPool();
db.setDB("calendar.mdb");
db.connect();
var sql="insert into cTime(Week) values('ddd') ";
db.execute(sql);
/*
db.executeQuery(sql);
while(!db.rs.eof){
    var cnt = db.rs.Fields("Data");
    document.write(cnt);
    db.rs.moveNext;
}
*/
db.rsClose();
db.conClose();
</script>
</body>

 

 

 

 

 

 

 

 

 

 


 

posted on 2008-08-19 14:49 感動常在 阅读(...) 评论(...) 编辑 收藏