当前位置:首页 » 编程语言 » phpodbcconnect

phpodbcconnect

发布时间: 2024-08-05 21:23:03

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;$i<count($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_mp($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如何连接mssql一个实例

你的写法没问题,不过可以试试指定端口((local)abc,1433)

另外,连接不上有错误信息吗?错误信息发出来看看

我试了下,php连接sqlsrv除了安装sqlsrv的扩展外还需要安装 odbc驱动 ,在微软sqlsrv for php 有介绍 ,根据你下载的 sqlsrv扩展版本安装 odbc驱动

❸ php用ODBC连接SQL SERVER出错!!!!

还可能是这个原因,你的系统应该是64bit的,在新建dsn要用64bit的odbc,不能用WIN7自带控制面板里面的管理工具里面的数据源添加。 必须用 C:\Windows\SysWOW64\odbcad32.exe 来添加数据源才好用。

❹ PHP使用ODBC连接数据库的方法

本文实例讲述了PHP使用ODBC连接数据库的方法。分享给大家供大家参考。具体实现方法如下:
<!DOCTYPE
html
PUBLIC
"-//W3C//DTD
XHTML
1.0
Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml"
xml:lang="en"
lang="en">
<head>
<title>PHP
and
ODBC:
XHTML
Example
1</title>
<meta
http-equiv="Content-Type"
content="text/html;
charset=UTF-8"
/>
</head>
<body>
<?php
$conn
=
odbc_connect(
"DRIVER={MySQL
ODBC
3.51
Driver};Server=localhost;Database=phpodbcdb",
"username",
"password");
if
(!($conn))
{
echo
"<p>Connection
to
DB
via
ODBC
failed:
";
echo
odbc_errormsg
($conn
);
echo
"</p>\n";
}
$sql
=
"SELECT
1
as
test";
$rs
=
odbc_exec($conn,$sql);
echo
"<table><tr>";
echo
"<th>Test</th></tr>";
while
(odbc_fetch_row($rs))
{
$result
=
odbc_result($rs,"test");
echo
"<tr><td>$result</td></tr>";
}
odbc_close($conn);
echo
"</table>";
?>
</body>
</html>
希望本文所述对大家的php程序设计有所帮助。

❺ 铏氭嫙涓绘満閲屼负浠涔坧hp杩炰笉浜哸ccess瑙e喅鏂规

锛1锛夊垱寤虹郴缁熸暟鎹婧愶纴鐢≒HP鎻愪緵镄凮DBC鍑芥暟銆傦纸2锛変娇鐢≒HP镄凮DBC鍑芥暟锛屼絾涓嶅垱寤烘暟鎹婧愩侾HP浣跨敤ODBC杩炴帴Access鏁版嵁搴撶殑鏂规硶銆傜敤$connstr="DRIVER=MicrosoftAccessDriver(*.mdb)𨱒ヨ剧疆鏁版嵁椹卞姩锛屽嚱鏁皉ealpath()鐢ㄦ潵鍙栧缑鏁版嵁搴撶殑鐩稿硅矾寰勚傚埄鐢ㄨユ柟娉曡繛鎺Access鏁版嵁搴扑富瑕佸簲鐢ㄥ埌PHP镄刼dbc_connect()鍑芥暟锛岃ュ嚱鏁板0鏄庡备笅锛氢互涓嬩负寮旷敤镄勫唴瀹癸细resourseodbc_connect(stringdsn,stringuser,stringpassword[,intcursor_type])dsn锛氱郴缁焏sn钖岖Оuser锛氭暟鎹搴撴湇锷″櫒镆愮敤鎴峰悕銆俻assword锛氭暟鎹搴撴湇锷″櫒镆愮敤鎴峰瘑镰併俢ursor_type锛氭父镙囩被鍨嬨备唬镰佸备笅锛氢互涓嬩负寮旷敤镄勫唴瀹癸细$connstr="DRIVER=MicrosoftAccessDriver(*.mdb);DBQ=".realpath("bookinfo.mdb");$connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC);锛3锛変娇鐢ㄥ井杞镄𪞝DODB鏁版嵁搴挞┍锷ㄣ傚畾涔夌被COM𨱒ヤ娇鐢ˋDO鏂规硶镎岖旱Access鏁版嵁搴撶殑銆傝ョ被璇︾粏璇存槑濡备笅锛氢互涓嬩负寮旷敤镄勫唴瀹癸细stringcom::com(stringmole_name[,stringserver_name[,intcodepage]])mole_name锛氲璇锋眰缁勪欢镄勫悕瀛楁垨class-id銆俿erver_name锛欴COM链嶅姟鍣ㄧ殑钖嶅瓧銆侰odepage锛氭寚瀹氱敤浜庡皢PHP瀛楃︿覆杞鎹㈡垚UNICODE瀛楃︿覆镄勪唬镰侀〉锛屽弽涔嬩害铹躲傝ュ弬鏁扮殑鍙栧兼湁CP_ACP銆丆P_MACCP銆丆P_OEMCP銆丆P_SYMBOL銆丆P_THREAD_ACP銆丆P_UTF7鍜孋P_UTF8銆侾HP鍒╃敤com绫诲苟浣跨敤ADO鏂规硶璁块梾鏁版嵁搴撶殑浠g爜濡备笅锛氢互涓嬩负寮旷敤镄勫唴瀹癸细$conn=newcom("ADODB.Connection");$connstr="DRIVER={MicrosoftAccessDriver(*.mdb)};DBQ=".realpath("bookinfo.mdb");$conn->Open($connstr);

热点内容
超低温疫苗存储冰柜生产厂家 发布:2024-11-25 22:32:58 浏览:537
x86linux 发布:2024-11-25 22:09:24 浏览:450
qq群怎么设置上传 发布:2024-11-25 22:08:37 浏览:16
加密户籍 发布:2024-11-25 22:08:32 浏览:214
newman算法 发布:2024-11-25 21:34:55 浏览:201
a算法概念 发布:2024-11-25 21:24:16 浏览:588
jquery源码书籍 发布:2024-11-25 21:19:50 浏览:804
银行卡输入密码超限怎么办 发布:2024-11-25 21:09:07 浏览:958
编译指令多发 发布:2024-11-25 20:58:17 浏览:751
java上传文件到服务器 发布:2024-11-25 20:52:47 浏览:741