php链接mdb数据库,php如何链接数据库

PHP注册用户连接到MDB数据库

个人猜测:去学PHP调用WORD的方法,然后用PHP调用MS的ACCESS来访问~

长顺ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!

ThinkPhp怎么连接Access数据库

con\config.php 中配置如下 ?php return array( APP_DEBUG = true, DB_TYPE=

pdo, // 注意DSN的配置针对不同的数据库有所区别 请参考PHP手册PDO类库部分

DB_DSN=odbc:driver={microsoft access driver

(*.mdb)};dbq=.getcwd().\\Database\\#fbdb.mdb, DB_USE

con\config.php 中配置如下

?php

return array(

'APP_DEBUG' = true,

'DB_TYPE'= 'pdo',

// 注意DSN的配置针对不同的数据库有所区别 请参考PHP手册PDO类库部分

'DB_DSN'="odbc:driver={microsoft access driver

(*.mdb)};dbq=".getcwd()."\\Database\\#fbdb.mdb",

'DB_USER'='root',

'DB_PWD'='',

'DB_PREFIX'='wxz_',

);

?

其中 需修改的有 "\\Database\\#fbdb.mdb"

相对与当前目录下的数据库文件位置,其余的用户名、密码和前缀(“wxz_”)根据情况修改

IndexAction.class.php示例代码

?php

class IndexAction extends Action {

public function index(){

$r =

M()-query("select * from product");

print_r($r);

}

}

ThinkPHP 内置了抽象数据库讵问层,把丌同癿数据库操作封装起来,我们叧需要使用公共癿Db 类

迕行操作,而无需针对丌同癿数据库写丌同癿代码和底层实现,Db 类会自劢调用相应癿数据库驱劢来处

理。目前癿数据库包括Mysql、SqlServer、PgSQL、Sqlite、Oracle、Ibase、Mongo,也包括对

PDO 癿支持,如果应用需要使用数据库,必须配置数据库连接信息,数据库癿配置文件有多种定丿方式,不支持ACCESS数据库

php连接access的mdb数据库出现问题,不知道是不是系统的问题

试试我的代码

?PHP

/*

创建ADO连接

*/

$conn = @new COM("ADODB.Connection") or die ("ADO Connection faild.");

$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("Database1.accdb");

$conn-Open($connstr);

/*

创建记录集查询

*/

$rs = @new COM("ADODB.RecordSet");

$rs-Open("select * from dbo_dirs",$conn,1,3);

/*

循环读取数据

*/

while(!$rs-eof){

echo $rs-Fields["title"]-Value;

echo "br/";

$rs-Movenext(); //将记录集指针下移

}

$rs-close();

?

php查询mdb最新

一.安装部署mongo

1.创建文件夹 

/opt/mongodb/single 

/opt/mongodb/data/db

2.进入single目录下载安装包

//下载 tar.gz文件

wget

3.解压 并修改文件名 

mv mongodb-linux-x86_64-2.4.6 mongo

4.进入mongo目录

5.创建配置文件 

– mkdir conf 

– cd conf 

– vim conf.properties

#端口

port=27017

#db存放的目录

dbpath=/opt/mongotest/data/db

#后台启动需要配置日志输出

logpath=/opt/mongotest/single/mongo/log/mongo.log

#日志模式

logappend=true

#设置成后台启动

fork=true

6.启动mongo 

mongo目录执行

root@chwx2:/opt/mongotest/single/mongo# ./bin/mongod -f conf/conf.properties

about to fork child process, waiting until server is ready for connections.

forked process: 4988

all output going to: /opt/mongotest/single/mongo/log/mongo.log

child process started successfully, parent exiting

表示后台启动mongo成功

二.使用mongo进行日常操作

1.连接mongodb 

mongo/bin目录下执行 

./mongo

2.查看数据库 

show dbs

3.查看当前所在数据库 

db

4.创建数据库 

use openfire (临时创建 如果不做操作 则离开后被系统删除)

5.在当前数据库删除当前数据库 

db.dropDatabase()

6.查看当前库的所有用户 

show users

7.查看集合(或者叫表) 

show collections

8.创建集合 

db.createCollection(“mycollection”)

9.创建集合并制定集合的属性 

db.createCollection(“mycol”, { capped : true, autoIndexID : true, size : 6142800, max : 10000 } )

字段

类型

描述

capped    Boolean    (可选)如果为true,则启用封顶集合。封顶集合是固定大小的集合,会自动覆盖最早的条目,当它达到其最大大小。如果指定true,则需要也指定尺寸参数。  

autoIndexID    Boolean    (可选)如果为true,自动创建索引_id字段的默认值是false。  

size    number    (可选)指定最大大小字节封顶集合。如果封顶如果是 true,那么你还需要指定这个字段。  

max    number    (可选)指定封顶集合允许在文件的最大数量。  

10.另一种创建集合 

(当插入一条数据时,不存在mongodb会帮我们创建,和创建数据库同理) 

db.MySecondCollection.insert({“name” : “ming”})

11.删除当前库的一个集合 

db.CollectionName.drop()

12.插入一条数据 

db.MyFirstCollection.insert({“_id”:”3”,”title”:”mongotest”,”description”:”this is test”}) 

注意:插入的都是JSON形式的,所以一定要用{},否则会报错: 

Sat Mar 19 14:22:39.160 SyntaxError: Unexpected token :

13.插入一条_id存在的数据 

db.MyFirstCollection.insert({“_id”:”3”,”title”:”mm”}) 

输出:E11000 duplicate key error index: openfire.MyFirstCollection.$_id_ dup key: { : “3” } 

解释:_id即是mongodb的默认主键,默认自动生成,我们可以直接设置以达到我们想要的目的

问:插入一条和原来集合完全不一样的数据可以吗?

答:可以,所以我们要在程序中规避,手动指定我们一个集合里面的字段,否则就无法实现查询及其他功能了

db.MyFirstCollection.insert({"newTitle":"null"})

db.MyFirstCollection.find();

{ "_id" : "3", "title" : "new title", "description" : "this is test" }

{ "_id" : ObjectId("56ecf4fe0dceecace97c4506"), "newTitle" : "null" }

14.查看集合第一条记录 

db.MySecondCollection.findOne(); 

输出:{ “_id” : ObjectId(“56ecde0662552d15c443dd4a”), “name” : “ming” }

15.查找一条/多条特定数据 

db.MySecondCollection.findOne({“name”:”ming”}) 

输出:{ “_id” : ObjectId(“56ecde0662552d15c443dd4a”), “name” : “ming” }

16.更新一条记录 

db.MyFirstCollection.update({“title”:”mongotest”},{$set:{“title”:”new title”}},true,false) 

结果: 

db.MyFirstCollection.findOne() 

{ “_id” : “3”, “title” : “new title”, “description” : “this is test” }

update详解

db.collection.update(criteria,objNew,upsert,multi)

criteria:查询条件

objNew:update对象和一些更新操作符

upsert:如果不存在update的记录,是否插入objNew这个新的文档,true为插入,默认为false,不插入。

multi:默认是false,只更新找到的第一条记录。如果为true,把按条件查询出来的记录全部更新。

更新操作符:

1.$inc

用法:{$inc:{field:value}}

作用:对一个数字字段的某个field增加value

示例:db.students.update({name:"student"},{$inc:{age:5}})  

2.$set

用法:{$set:{field:value}}

作用:把文档中某个字段field的值设为value

示例:db.students.update({name:"student"},{$set:{age:23}})

3.$unset

用法:{$unset:{field:1}}

作用:删除某个字段field

示例: db.students.update({name:"student"},{$unset:{age:1}})

4.$push

用法:{$push:{field:value}}

作用:把value追加到field里。注:field只能是数组类型,如果field不存在,会自动插入一个数组类型

示例:db.students.update({name:"student"},{$push:{"title":"major"}}

5.$rename

用法:{$rename:{old_field_name:new_field_name}}

作用:对字段进行重命名(不是值,是字段)

示例:db.students.update({name:"student"},{$rename:{"name":"newname"}})

设置用户权限及访问

1.给admin添加用户

切换到admin库:use admin 

添加admin用户:db.addUser(“root”,”admin”)

注意:必须先给admin库添加用户,否则就算给具体的库添加了用户,后续进入依然能操作具体库. 

因为默认admin库用户具有最高权限,相当于具体库需要认证时,进入的用户持有的是admin的权限,所以无需认证依然能进行操作.

2.给具体库添加用户

use openfire

db.addUser("openfire","password")

3.重启mongo并在启动时配置需要认证

方法一:退出重启并加上auth参数 

./bin/mongod -f conf/conf.properties –auth(注意是两个-)

方法二:修改配置文件,加上参数(推荐) 

auth=true

3.测试权限

use openfire

db.MySecondCollection.findOne();

Sat Mar 19 14:04:55.653 error: {

"$err" : "not authorized for query on openfire.MySecondCollection",

"code" : 16550

} at src/mongo/shell/query.js:128

4.认证并操作

//此处应该设置成更加恰当的用户名及密码

db.auth("openfire","password")

1

db.MySecondCollection.findOne()

{ "_id" : ObjectId("56ecde0662552d15c443dd4a"), "name" : "ming" }

5.另一种方法认证

在进入mongo时候加上数据库及用户名、密码 

./bin/mongo openfire -uopenfire -ppassword

root@test:/opt/mongotest/single/mongo# ./bin/mongo openfire -uopenfire -ppassword

MongoDB shell version: 2.4.6

connecting to: openfire

db

openfire

db.MySecondCollection.findOne()

{ "_id" : ObjectId("56ecde0662552d15c443dd4a"), "name" : "ming" }

mongdb进阶

1.find()指定返回字段 

作用:减少流量

如果key:value,返回的value是个非常大的JSON,而我们不需要这么多字段,也许我们只需要其中的一个.

那么使用projection来过滤: 

db.collection.find(query, projection) 此处projection就是返回值的过滤条件

参数

类型

描述

query    文档    可选. 使用查询操作符指定查询条件  

projection    文档    可选.使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略).  

返回值: 匹配查询条件的文档集合的游标. 如果指定投影参数,查询出的文档返回指定的键 ,”_id”键也可以从集合中移除掉。 

_id不指定的话,总是会返回. 

1或者true代表返回,0或者false代表不返回

示例: 

db.MyFirstCollection.findOne({“title”:”new title”},{“description”:1,”_id”:0}); 

{ “description” : “this is test” }

也可以使用表达式: 

db.MyFirstCollection.findOne({“title”:”new title”},{Items:{“$slice”:[3,1]}});

引用: 

如何用php连接mdb数据库?

以下为几个php连接access数据库和操作acess数据的方法,全部做成了类,应用起来也更方便,也可摘用其中的部分代码应用。

?php

--------------------------------------------------------------------

//FileName:class.php

//Summary: Access数据库操作类

// 使用范例:

//$databasepath="database.mdb";

//$dbusername="";

//$dbpassword="";

//include_once("class.php");

//$access=new Access($databasepath,$dbusername,$dbpassword);

--------------------------------------------------------------------

class Access

{

var $databasepath,$constr,$dbusername,$dbpassword,$link;

function Access($databasepath,$dbusername,$dbpassword)

{

$this-databasepath=$databasepath;

$this-username=$dbusername;

$this-password=$dbpassword;

$this-connect();

}

function connect()

{

$this-constr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath($this-databasepath);

$this-link=odbc_connect($this-constr,$this-username,$this-password,SQL_CUR_USE_ODBC);

return $this-link;

//if($this-link) echo "恭喜你,数据库连接成功!";

//else echo "数据库连接失败!";

}

function query($sql)

{

return @odbc_exec($this-link,$sql);

}

function first_array($sql)

{

return odbc_fetch_array($this-query($sql));

}

function fetch_row($query)

{

return odbc_fetch_row($query);

}

function total_num($sql)//取得记录总数

{

return odbc_num_rows($this-query($sql));

}

function close()//关闭数据库连接函数

{

odbc_close($this-link);

}

function insert($table,$field)//插入记录函数

{

$temp=explode(',',$field);

$ins='';

for ($i=0;$icount($temp);$i++)

{

$ins.="'".$_POST[$temp[$i]]."',";

}

$ins=substr($ins,0,-1);

$sql="INSERT INTO ".$table." (".$field.") VALUES (".$ins.")";

$this-query($sql);

}

function getinfo($table,$field,$id,$colnum)//取得当条记录详细信息

{

$sql="SELECT * FROM ".$table." WHERE ".$field."=".$id."";

$query=$this-query($sql);

if($this-fetch_row($query))

{

for ($i=1;$i$colnum;$i++)

{

$info[$i]=odbc_result($query,$i);

}

}

return $info;

}

function getlist($table,$field,$colnum,$condition,$sort="ORDER BY id DESC")//取得记录列表

{

$sql="SELECT * FROM ".$table." ".$condition." ".$sort;

$query=$this-query($sql);

$i=0;

while ($this-fetch_row($query))

{

$recordlist[$i]=getinfo($table,$field,odbc_result($query,1),$colnum);

$i++;

}

return $recordlist;

}

function getfieldlist($table,$field,$fieldnum,$condition="",$sort="")//取得记录列表

{

$sql="SELECT ".$field." FROM ".$table." ".$condition." ".$sort;

$query=$this-query($sql);

$i=0;

while ($this-fetch_row($query))

{

for ($j=0;$j$fieldnum;$j++)

{

$info[$j]=odbc_result($query,$j+1);

}

$rdlist[$i]=$info;

$i++;

}

return $rdlist;

}

function updateinfo($table,$field,$id,$set)//更新记录

{

$sql="UPDATE ".$table." SET ".$set." WHERE ".$field."=".$id;

$this-query($sql);

}

function deleteinfo($table,$field,$id)//删除记录

{

$sql="DELETE FROM ".$table." WHERE ".$field."=".$id;

$this-query($sql);

}

function deleterecord($table,$condition)//删除指定条件的记录

{

$sql="DELETE FROM ".$table." WHERE ".$condition;

$this-query($sql);

}

function getcondrecord($table,$condition="")// 取得指定条件的记录数

{

$sql="SELECT COUNT(*) AS num FROM ".$table." ".$condition;

$query=$this-query($sql);

$this-fetch_row($query);

$num=odbc_result($query,1);

return $num;

}

}

?

22222222

class.php文件:

[php]

?php

class Access//Access数据库操作类

{

var $databasepath,$constr,$dbusername,$dbpassword,$link;//类的属性

function Access($databasepath,$dbusername,$dbpassword)//构造函数

{

$this-databasepath=$databasepath;

$this-username=$dbusername;

$this-password=$dbpassword;

$this-connect();

}

function connect()//数据库连接函数

{

$this-constr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath($this-databasepath);

$this-link=odbc_connect($this-constr,$this-username,$this-password,SQL_CUR_USE_ODBC);

return $this-link;

//if($this-link) echo "恭喜你,数据库连接成功!";

//else echo "数据库连接失败!";

}

function query($sql)//送一个查询字符串到数据库中

{

return @odbc_exec($this-link,$sql);

}

function first_array($sql)//从access数据库中返回一个数组

{

return @odbc_fetch_array($this-query($sql));

}

function fetch_row($query)//返回记录中的一行

{

return odbc_fetch_row($query);

}

function total_num($sql)//取得记录总数

{

return odbc_num_rows($this-query($sql));

}

function close()//关闭数据库连接函数

{

odbc_close($this-link);

}

function insert($table,$field)//插入记录函数

{

$temp=explode(',',$field);

$ins='';

for ($i=0;$i {

$ins.="'".$_POST[$temp[$i]]."',";

}

$ins=substr($ins,0,-1);

$sql="INSERT INTO ".$table." (".$field.") VALUES (".$ins.")";

$this-query($sql);

}

function getinfo($table,$field,$id,$colnum)//取得当条记录详细信息

{

$sql="SELECT * FROM ".$table." WHERE ".$field."=".$id."";

$query=$this-query($sql);

if($this-fetch_row($query))

{

for ($i=1;$i$colnum;$i++)

{

$info[$i]=odbc_result($query,$i);

}

}

return $info;

}

function getlist($table,$field,$colnum,$condition,$sort="ORDER BY id DESC")//取得记录列表

{

$sql="SELECT * FROM ".$table." ".$condition." ".$sort;

$query=$this-query($sql);

$i=0;

while ($this-fetch_row($query))

{

$recordlist[$i]=getinfo($table,$field,odbc_result($query,1),$colnum);

$i++;

}

return $recordlist;

}

function getfieldlist($table,$field,$fieldnum,$condition="",$sort="")//取得记录列表

{

$sql="SELECT ".$field." FROM ".$table." ".$condition." ".$sort;

$query=$this-query($sql);

$i=0;

while ($this-fetch_row($query))

{

for ($j=0;$j$fieldnum;$j++)

{

$info[$j]=odbc_result($query,$j+1);

}

$rdlist[$i]=$info;

$i++;

}

return $rdlist;

}

function updateinfo($table,$field,$id,$set)//更新记录函数

{

$sql="UPDATE ".$table." SET ".$set." WHERE ".$field."=".$id;

$this-query($sql);

}

function deleteinfo($table,$field,$id)//删除记录函数

{

$sql="DELETE FROM ".$table." WHERE ".$field."=".$id;

$this-query($sql);

}

function deleterecord($table,$condition)//删除指定条件的记录函数

{

$sql="DELETE FROM ".$table." WHERE ".$condition;

$this-query($sql);

}

function getcondrecord($table,$condition="")//取得指定条件的记录数函数

{

$sql="SELECT COUNT(*) AS num FROM ".$table." ".$condition;

$query=$this-query($sql);

$this-fetch_row($query);

$num=odbc_result($query,1);

return $num;

}

}

?

[/php]

数据库连接文件:

[php]

?php

$databasepath="data/database.mdb";//数据库路径

$dbusername="";//数据库用户名

$dbpassword="";//数据库密码

include_once("class.php");//调用数据库操作类

$access=new Access($databasepath,$dbusername,$dbpassword);//新建一个数据库操作类的对象

?

[/php]

[php]

?php

$sql="select * from $info where id=$id";

$result=$access-query($sql)or die("error2");

$array=odbc_fetch_array($result);

?

[/php]

333333333333

这个是为了 同时可以使用access和mysql而做的 先弄一个mysql的 然后又写一个access的 所有的函数一一对应 你可以看下 绝对原创喔~~

配置文件如下

$config['db']['type'] = "Mysql"; //数据库类型“Mysql”,“Access”

$config['db']['database']= "ourcms"; //数据库(文件)名

$config['db']['host'] = ""; //数据库主机

$config['db']['username']= "7king"; //数据库连接用户名

$config['db']['password']= "tingting"; //数据库连接密码

/*

$config['db']['type'] = "Access"; //数据库类型“Mysql”,“Access”

$config['db']['database']= "ourcms.mdb";//数据库(文件)名

$config['db']['host'] = "";

$config['db']['username']= "";

$config['db']['password']= "";

?php

/**

* 2007.04 by zhaohe

*

* php连接access通用类

*

* 用法:

* 建立new Access类 = set_db设置数据路径 = set_login 设置连接数据库的用户名和密码

* = 通过set_conn 设置连接 =

* {

get_result 获取查询执行结果; get_result_rows 获取查询执行列表,一般是select

insert_info 插入新的记录 update_info更新记录

}

*

*

*/

class Access {

/**

* 类变量定义

* @param $conn mysql连接号

* @param $error 错误代号

* @param $username/$password 数据库连接用户名和密码

* @param array $err_info 错误信息

*

* @param $debuginfo 调试信息

* @param $table 当前操作数据表

*/

var $conn;

var $error;

var $database;

var $username = "";

var $password = "";

var $err_info = array(

0 = "没有错误!",

1 = "数据库连接失败!",

2 = "sql执行出错!"

);

var $debuginfo="";

var $table;

/**

* 默认构造方法

**/

function Access( $arr=null ){

if( is_array($arr) ) {

$this-set_login( $arr['host'] , $arr['username'] , $arr['password'] );

$this-set_db( $arr['database'] );

$this-set_conn();

}

}

/**

* 设置数据库文件名

* @param string $dbfile

*

* return void

*/

function set_db ( $dbfile ){

$this-database = $dbfile;

}

/**

* 设置连接数据库的用户名和密码

* @param string $user 用户名

* @param string $pwd 密码

*

* @return void

*/

function set_login ( $user , $pwd ){

$this-username=$user;

$this-password=$pwd;

}

/**

* 创建数据库连接

* @param

* return void

*/

function set_conn ( ){

if($this-conn=odbc_connect("DRIVER=Microsoft Access Driver (*.mdb);DBQ=".realpath($this-database),$this-username,$this-password,SQL_CUR_USE_ODBC )) $this-error=0;

else $this-error=1;

}

/**

* 设置当前操作的数据表

* @param string $tb

*

* @return void

*/

function set_table( $tb ) {

$this-table = $tb;

}

/**

* 返回sql查询结果

* @param string $sql sql语句

*

* @return #id

*/

function get_result( $sql ){

return odbc_do( $this-conn , $sql );

}

/**

* 获取查询的结果

* @param string $sql

*

* @return array 结果的二维数组

*/

function get_result_rows( $sql ){

$array = array() ;

$result = $this-get_result( $sql );

while( $row = odbc_fetch_array( $result ) )

$array[] = $row ;

return $array;

}

/**

* 获取部分查询结果

*

* @param Array 数组

* @return Array

*/

function get_query_result( $cols , $tb=null , $order=null , $limit=null , $start=0 ) {

if( empty($tb) ) $tb=$this-table;

else $this-table=$tb;

if( is_array($cols) ) $col="[".implode('],[',$cols)."]";

else $col = $cols;

if( empty($limit) )

$sql = "select $col from $tb";

else

$sql ="select top $limit $col from $tb";;

if( isset($order) ) $sql.=" order by $order";

return $this-get_result_rows($sql);

}

/**

* 执行数据库插入操作

*

* @param $arr values列表,数组索引为数据表字段

* @param $tb 操作数据表 如果为空则为设置的当前类的操作表

*/

function insert_info( $arr , $tb = "" ) {

$cols = array_keys( $arr );

$values = array_values( $arr );

if (empty($tb)) $tb = $this-tb;

/*

foreach( $arr as $key = $value ){

$cols[] = $key;

$values[] = $value;

}

*/

$sql = "insert into [$tb]([".implode("],[",$cols)."]) values('".implode("','",$values)."')";

//return $sql;

return $this-get_result( $sql );

}

/**

* 执行数据库更新操作

*

* @param array $arr 要更新的字段值 数组索引为表字段名

* @param array $con 条件数组

* @param string $tb 要操作的数据表

*

*/

function update_info( $arr , $con , $tb = "" ) {

$cols = array();

$conditions = array();

if (empty( $tb )) $tb = $this-tb;

foreach( $arr as $key = $value ){

$cols[] = "[$key]='$value'";

}

foreach( $con as $key = $value ) {

//检查数据类型

if( is_int($value) || is_float($value) )

$conditions[] = "[$key]=$value";

else

$conditions[] = "[$key]='$value'";

}

$sql = "update [$tb] set ".implode(",",$cols)." where ".implode(" and ",$conditions);

//return $sql;

return $this-get_result( $sql );

}

}

?

mysql的类如下

class Mysql {

/**

* mysql连接执行类,将sql的执行实现数据库无关性

*

*

*

*/

/**

* 类变量定义

* @param $conn mysql连接号

* @param $error 错误代号

* @param $username/$password 数据库连接用户名和密码

* @param array $err_info 错误信息

*

* @param $debuginfo 调试信息

* @param $table 当前操作数据表

*/

var $conn;

var $error;

var $username = "";

var $password = "";

var $host;

var $database;

var $err_info = array(

0 = "没有错误!",

1 = "数据库连接失败!",

2 = "sql执行出错!"

);

var $debuginfo="";

var $table;

function Mysql( $arr=null ) {

if( is_array($arr) ) {//var_dump($arr);

$this-set_login( $arr['host'] , $arr['username'] , $arr['password'] );

$this-set_db( $arr['database'] );

$this-set_conn();

if( isset($this-error) $this-error!=0 ) die($this-err_info[$this-error]);

}

}

/**

* 设置数据库名

* @param string $database

*

* return void

*/

function set_db ( $dbfile ){

$this-database = $dbfile;

}

/**

* 设置连接数据库的用户名和密码

* @param string $user 用户名

* @param string $pwd 密码

*

* @return void

*/

function set_login ( $host , $user , $pwd ){

$this-host=$host;

$this-username=$user;

$this-password=$pwd;

}

/**

* 创建数据库连接

* @param

* return void

*/

function set_conn (){

$this-conn=mysql_connect($this-host,$this-username,$this-password );

if ( isset($this-conn) mysql_select_db($this-database) )

$this-error=0;

else

$this-error=1;

}

/**

* 设置当前操作的数据表

* @param string $tb

*

* @return void

*/

function set_table( $tb ) {

$this-table = $tb;

}

/**

* 返回sql查询结果

* @param string $sql sql语句

*

* @return #id

*/

function get_result( $sql ){

return mysql_query( $sql , $this-conn );

}

/**

* 获取查询的结果

* @param string $sql

*

* @return array 结果的二维数组

*/

function get_result_rows( $sql ){

$array = array() ;

$result = $this-get_result( $sql );

while( $row = mysql_fetch_assoc( $result ) )

$array[] = $row ;

return $array;

}

/**

* 获取部分查询结果

*

* @param Array 数组

* @return Array

*/

function get_query_result( $cols , $tb=null , $condition , $order=null , $limit=null , $start=0 ) {

if( empty($tb) ) $tb=$this-table;

else $this-table=$tb;

if( is_array($cols) ) $col="`".implode('`,`',$cols)."`";

else $col = $cols;

if( isset($limit) )

$sql.="select top $limit $col from $tb";

else

$sql = "select $col from $tb";

if( isset($condition) ) $sql.=" where $condition";

if( isset($order) ) $sql.=" order by $order";

if( isset($limit) ) $sql.=" limit $start,$limit";

return $this-get_result_rows($sql);

}

/**

* 执行数据库插入操作

*

* @param $arr values列表,数组索引为数据表字段

* @param $tb 操作数据表 如果为空则为设置的当前类的操作表

*/

function insert_info( $arr , $tb = "" ) {

$cols = array_keys( $arr );

$values = array_values( $arr );

if (empty($tb)) $tb = $this-table;

/*

foreach( $arr as $key = $value ){

$cols[] = $key;

$values[] = $value;

}

*/

$sql = "insert into [$tb](`".implode("`,`",$cols)."`) values('".implode("','",$values)."')";

//return $sql;

return $this-get_result( $sql );

}

/**

* 执行数据库更新操作

*

* @param array $arr 要更新的字段值 数组索引为表字段名

* @param array $con 条件数组

* @param string $tb 要操作的数据表

*

*/

function update_info( $arr , $con , $tb = "" ) {

$cols = array();

$conditions = array();

if (empty( $tb )) $tb = $this-table;

if( is_array($arr) ) {

foreach( $arr as $key = $value ){

$cols[] = "`$key`='$value'";

}

foreach( $con as $key = $value ) {

//检查数据类型

if( is_int($value) || is_float($value) )

$conditions[] = "`$key`=$value";

else

$conditions[] = "`$key`='$value'";

}

$sql = "update `$tb` set ".implode(",",$cols)." where ".implode(" and ",$conditions);

}

else

$sql = "update `$tb` set $arr where $con";

//return $sql;

return $this-get_result( $sql );

}

}

php 链接 .mdb数据库,并读取

PHP和经典的ACCESS数据库同样能达到较好的效果,不过采用ODBC的方式来连接该access我个人不主张这样做,因为现在虚拟机不可能提供odbc连接,推荐使用PHP的ADODB对象来连接该数据库


文章名称:php链接mdb数据库,php如何链接数据库
网站路径:http://pwwzsj.com/article/dscecii.html