最近想把一个asp的网站改成php的,无奈空间不支持mysql数据库,只好用acce数据库了,但以前都是用的php+mysql,php+acce数据库编程还真没有做过.感谢党,感谢cctv,感谢搜索引擎,这不找到一编不错的文章,特转过来和大家分享.在PHP中连接Acce有如下3种方式。 php程序员之家
(1)创建系统数据源,用PHP提供的ODBC函数即可。
php程序员之家
(2)同样可以使用PHP的ODBC函数,但不创建数据源。
开放数据库连接(Open DateBase Conection,ODBC)是Windows Open Server(开放服务)API(WOSA)产品之一。一个数据源是对数据库的一个命名连接。对于应用程序要连接的不同类型的数据库,都需要一个ODBC驱动程序。ODBC API主要是为客户/服务器的RDBMS使用设计的,但是ODBC驱动程序也可以用于连接桌面数据库文件、工作表和平面文件。ODBC使用Odbcinst.dll库来设置和清除数据源。Odbcad32.exe是一个用于建立ODBC数据源的独立的32位可执行应用程序,在控制面板中有其对应的图标Control Panel。 php程序员站
ODBC驱动管理程序为数据源打开ODBC驱动程序并将SQL语句传送给驱动程序。在客户/服务器RDBMS处理完一个select查询后,ODBC驱动程序将值返回给应用程序。当执行一个insert、update或delete语句时,驱动程序返回查询所影响的行数。 phperz.com
下面介绍PHP使用ODBC连接Acce数据库的方法。用$connstr=\"DRIVER= Microsoft Acce Driver (*.mdb)来设置数据驱动,函数realpath()用来取得数据库的相对路径。利用该方法连接Acce数据库主要应用到PHP的odbc_connect()函数,该函数声明如下: www.daodoc.com
以下为引用的内容: resourse odbc_connect( string dsn, string user, string paword [, int cursor_type]) dsn:系统dsn名称。 www.daodoc.com
user:数据库服务器某用户名。 php程序员站
paword:数据库服务器某用户密码。 php程序员站
cursor_type:游标类型。 www.daodoc.com
php程序员之家
代码如下: www.daodoc.com
以下为引用的内容:
$connstr=\"DRIVER=Microsoft Acce Driver (*.mdb); DBQ=\".realpath(\"bookinfo.mdb\");
$connid=odbc_connect($connstr,\"\",\"\",SQL_CUR_USE_ODBC );
php程序员之家
(3)使用微软的ADODB数据库驱动。ActiveX Data Objects(ADO)是Microsoft开放数据库应用程序的数据库访问技术。它被设计用来同新的数据访问层OLE DB Provider一起协同工作,提供通用数据访问(Universal Date Acce)。OLE DB是一个低层的数据访问接口,用它可以访问各种数据源,包括传统的关系型数据库、电子邮件系统及自定义的商业对象。ADO技术大大简化了OLE DB的操作,因为ADO封装了OLE DB程序中使用的大量COM接口,所以ADO是一种高层的访问技术。 php程序员站
ADO技术基于通用对象模型(COM),它提供了多种语言的访问技术。PHP是通过预先定义类COM来使用ADO方法操纵Acce数据库的。该类详细说明如下: www.daodoc.com
以下为引用的内容:
string com::com( string module_name [, string server_name [, int codepage]]) module_name:被请求组件的名字或cla-id。 www~
server_name:DCOM服务器的名字。
www.daodoc.com
Codepage:指定用于将PHP字符串转换成UNICODE字符串的代码页,反之亦然。该参数的取值有CP_ACP、CP_MACCP、CP_OEMCP、CP_SYMBOL、CP_THREAD_ACP、CP_UTF7和CP_UTF8。
phperz.com
phperz.com
PHP利用com类并使用ADO方法访问数据库的代码如下: 以下为引用的内容:
$conn = new com(\"ADODB.Connection\"); $connstr = \"DRIVER={Microsoft Acce Driver (*.mdb)}; DBQ=\" .realpath(\"bookinfo.mdb \"); www.daodoc.com
$conn->Open($connstr);
***********************************************************************
<?php /* * Created on 2008-10-25 * * developer by Alex.do QQ:20779512 * PHP 5.0 */
cla mdbCla { var $dbPath = \'database/#123123#.mdb\'; //数据库路径 var $tabName; //表名 var $aryChar; //写入、查询操作时为列的集合,更新操作时为更新具体内容
var $aryText; //写入操作时为值的集合,更新、删除、查询操作时为更新的条件,批量请赋予1=1 var $showMeage; //操作返回的提示
var $pageCode = 1; //当前页,程序默认为1 var $pageSize = 10; //每页显示记录数,程序默认为10 var $pageUrl = \'?\'; //分页时传入的其它保留参数 var $pageViewText; //输出分页字符串
var $pageView = false; //是否显示分页,默认为不显示 var $bodyAry = Array(); //返回查询的数据
var $siteCode = Array( //返回提示的文字,目的:多语言 0 => \'数据库连接成功!\', 1 => \'数据库连接失败!\', 2 => \'数据写入成功!\', 3 => \'数据更新成功!\', 4 => \'数据删除成功!\', 5 => \'数据查询失败!\', 6 => \'首页\', 7 => \'上一页\', 8 => \'下一页\', 9 => \'尾页\' );
//数据库连接 function conn(){ try { $this->conn = new com(\"ADODB.Connection\"); $this->conn->Open(\"DRIVER={Microsoft Acce Driver (*.mdb)}; DBQ=\" .realpath($this->dbPath)); $this->showMeage = $this->siteCode[0]; } catch(Exception $e){ $this->showMeage = $e->getMeage() .\'\' .$this->siteCode[1]; } }
//数据库关闭
function conn_close(){ $this->conn->close(); }
//写入数据
function setData(){ $this->conn(); $this->conn->execute(\"insert into $this->tabName ($this->aryChar) values($this->aryText)\"); $this->showMeage = $this->siteCode[2]; $this->conn_close(); } //更新数据
function upData(){ $this->conn(); $this->conn->execute(\"update $this->tabName set $this->aryChar where $this->aryText\"); $this->showMeage = $this->siteCode[3]; $this->conn_close(); }
//删除数据
function delData(){ $this->conn(); $this->conn->execute(\"delete from $this->tabName where $this->aryText\"); $this->showMeage = $this->siteCode[4]; $this->conn_close(); }
//查询数据
function getData(){ $this->conn(); $rs = $this->conn->execute(\"select $this->aryChar from $this->tabName where $this->aryText\"); if(!$rs->Eof){ $j = 0; $k = 0; if(!preg_match(\"/^\\d+$/\" , $this->pageCode)){ $this->pageCode = 1; } while(!$rs->Eof){ $j ++; //把记录写进当前需要显示的二维数组中
if(($j > ($this->pageCode1) .\"\'>\" .$this->siteCode[7] .\" \"; } else { $this->pageViewText .= $this->siteCode[6] .\" \"; $this->pageViewText .= $this->siteCode[7] .\" \";; } if($this->pageCode pageSize)){ $this->pageViewText .= \"pageUrl .\"page=\" .($this->pageCode + 1) .\"\'>\" .$this->siteCode[8] .\" \"; $this->pageViewText .= \"pageUrl .\"page=\" .ceil($j / $this->pageSize) .\"\'>\" .$this->siteCode[9] .\"\"; } else { $this->pageViewText .= $this->siteCode[8] .\" \"; $this->pageViewText .= $this->siteCode[9]; } } } } else { $this->showMeage = $this->siteCode[5]; exit(); } $rs->close(); $this->conn_close(); } } ?>
使用方法
<?
类名:mdbCla; 作用:操作acce的DB类; 作者:biyuan(6010707); 使用方法及范例:
$db = new mdbCla(); //实例
$db->tabName = \"gbook\"; //指定要操作的表名
//数据写入操作
$db->aryChar = \"g_name , g_mail , g_oicq , g_tel , g_img , g_body\"; $db->aryText = \"\'admin\' , \'xxxx@163.com\' , 6010707 , \'15994275xxx\' , \'/face/1.gif\' , \'测试数据\'\"; $db->setData();
//数据更新操作
$db->aryChar = \"g_name = \'scriptcn\' , g_tel = \'13800138xxx\'\"; $db->aryText = \"1 = 1\"; //条件;赋予1=1表示批量操作 $db->upData();
//数据删除操作
$db->aryText = \"id = 4\"; $db->delData();
//数据查询操作
$db->aryChar = \"id , g_name , g_mail , g_oicq , g_time , g_body\"; //可使用“*”全部查询
$db->aryText = \"1 = 1 order by id\"; //条件1 = 1表示查询所有记录 $db->pageView = true; //是否分页 $db->pageSize = 10; //指定每页记录数 $db->pageUrl = \"?id=1&\"; //传入其它保留参数 $db->pageCode = $_GET[\'page\']; //获取当前页序号 $db->getData(); echo \"\\n\"; for($i = 0 ; $i bodyAry) ; $i ++){ //注意这里,$db->bodyAry是一个二维数组,行 -> 列 echo \"\\n\"; for($j = 0 ; $j bodyAry[$i]) ; $j ++){ echo \"\" .$db->bodyAry[$i][$j] .\"\\n\"; } echo \"\\n\"; } if($db->pageView == true){ echo \"\\n\"; echo $db->pageViewText; //这里是DB类返回的分页字符 echo \"\\n\\n\"; }
//echo $db->showMeage; //返回提示内容,调试时可开启
?>
<?php ------ //FileName:cla.php //Summary: Acce数据库操作类 // 使用范例:
//$databasepath=\"database.mdb\"; //$dbusername=\"\"; //$dbpaword=\"\"; //include_once(\"cla.php\"); //$acce=new Acce($databasepath,$dbusername,$dbpaword); ------ cla Acce { var $databasepath,$constr,$dbusername,$dbpaword,$link; function Acce($databasepath,$dbusername,$dbpaword) { $this->databasepath=$databasepath; $this->username=$dbusername; $this->paword=$dbpaword; $this->connect(); }
function connect() { $this->constr=\"DRIVER={Microsoft Acce Driver (*.mdb)}; DBQ=\" .realpath($this->databasepath);
$this->link=odbc_connect($this->constr,$this->username,$this->paword,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;$iquery($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
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
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 cla.php文件: [php] <?php cla Acce//Acce数据库操作类 { var $databasepath,$constr,$dbusername,$dbpaword,$link;//类的属性
function Acce($databasepath,$dbusername,$dbpaword)//构造函数 { $this->databasepath=$databasepath; $this->username=$dbusername; $this->paword=$dbpaword; $this->connect(); }
function connect()//数据库连接函数 { $this->constr=\"DRIVER={Microsoft Acce Driver (*.mdb)}; DBQ=\" .realpath($this->databasepath); $this->link=odbc_connect($this->constr,$this->username,$this->paword,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)//从acce数据库中返回一个数组 { 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
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
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=\"\";//数据库用户名 $dbpaword=\"\";//数据库密码
include_once(\"cla.php\");//调用数据库操作类
$acce=new Acce($databasepath,$dbusername,$dbpaword);//新建一个数据库操作类的对象 ?> [/php]
[php] <?php $sql=\"select * from $info where id=$id\"; $result=$acce->query($sql)or die(\"error2\"); $array=odbc_fetch_array($result); ?> [/php] 333333333333 这个是为了 同时可以使用acce和mysql而做的 先弄一个mysql的 然后又写一个acce的 所有的函数一一对应 你可以看下 绝对原创喔~~ 配置文件如下
$config[\'db\'][\'type\'] = \"Mysql\"; //数据库类型“Mysql”,“Acce” $config[\'db\'][\'database\']= \"ourcms\"; //数据库(文件)名 $config[\'db\'][\'host\'] = \"\"; //数据库主机
$config[\'db\'][\'username\']= \"7king\"; //数据库连接用户名 $config[\'db\'][\'paword\']= \"tingting\"; //数据库连接密码
/* $config[\'db\'][\'type\'] = \"Acce\"; //数据库类型“Mysql”,“Acce” $config[\'db\'][\'database\']= \"ourcms.mdb\";//数据库(文件)名 $config[\'db\'][\'host\'] = \"\"; $config[\'db\'][\'username\']= \"\"; $config[\'db\'][\'paword\']= \"\";
<?php /** * 2007.04 by zhaohe * * php连接acce通用类 * * 用法: * 建立new Acce类 => set_db设置数据路径 => set_login 设置连接数据库的用户名和密码
* => 通过set_conn 设置连接 => * { get_result 获取查询执行结果; get_result_rows 获取查询执行列表,一般是select insert_info 插入新的记录 update_info更新记录 } * * */
cla Acce { /** * 类变量定义
* @param $conn mysql连接号 * @param $error 错误代号
* @param $username/$paword 数据库连接用户名和密码 * @param array $err_info 错误信息 * * @param $debuginfo 调试信息 * @param $table 当前操作数据表 */ var $conn; var $error; var $database; var $username = \"\"; var $paword = \"\"; var $err_info = array( 0 => \"没有错误!\", 1 => \"数据库连接失败!\", 2 => \"sql执行出错!\" ); var $debuginfo=\"\"; var $table; /** * 默认构造方法 **/ function Acce( $arr=null ){ if( is_array($arr) ) { $this->set_login( $arr[\'host\'] , $arr[\'username\'] , $arr[\'paword\'] ); $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->paword=$pwd; } /** * 创建数据库连接 * @param * return void */ function set_conn ( ){
if($this->conn=odbc_connect(\"DRIVER=Microsoft Acce Driver (*.mdb);DBQ=\".realpath($this->database),$this->username,$this->paword,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( iet($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).\" \",$conditions); //return $sql; return $this->get_result( $sql ); } } ?>
mysql的类如下 cla Mysql { /** * mysql连接执行类,将sql的执行实现数据库无关性 *
where \".implode(\" and * * */ /** * 类变量定义
* @param $conn mysql连接号 * @param $error 错误代号
* @param $username/$paword 数据库连接用户名和密码 * @param array $err_info 错误信息 * * @param $debuginfo 调试信息 * @param $table 当前操作数据表 */ var $conn; var $error; var $username = \"\"; var $paword = \"\"; 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[\'paword\'] ); $this->set_db( $arr[\'database\'] ); $this->set_conn(); if( iet($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->paword=$pwd; } /** * 创建数据库连接 * @param * return void */ function set_conn (){
$this->conn=mysql_connect($this->host,$this->username,$this->paword );
if ( iet($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_aoc( $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( iet($limit) ) $sql.=\"select top $limit $col from $tb\"; else $sql = \"select $col from $tb\"; if( iet($condition) ) $sql.=\" where $condition\"; if( iet($order) ) $sql.=\" order by $order\"; if( iet($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).\" \",$conditions); } else $sql = \"update `$tb` set $arr where $con\"; //return $sql; return $this->get_result( $sql ); } }
where \".implode(\" and