php操作Access数据库
'*'); $H_sqlar['filed'] = array($H_filed_s,$H_filed_a); $H_where_i = strpos($H_sql,"where"); if($H_where_i){ $H_sqlar['wheref'] = true; $H_sqlar['from'] = substr($H_sql,$H_filed_i,$H_where_i-$H_filed_i); }else{ $H_sqlar['wheref'] = false; $H_where_i = $H_filed_i; } $H_limit_i = strrpos($H_sql,"limit"); if($H_limit_i){ $H_limit_s = trim(substr($H_sql,$H_limit_i+6,strlen($H_sql)-$H_limit_i)); $H_sql = substr($H_sql,0,$H_limit_i); if(strrpos($H_limit_s,",")){ $H_explm = explode(",",$H_limit_s); $H_index = intval($H_explm[0]); $H_sizes = intval($H_explm[1]); }else{ $H_index = 0; $H_sizes = intval($H_limit_s); } $H_sqlar['limit'] = array("limit ".$H_limit_s,$H_index,$H_sizes); }else{ $H_limit_i = strlen($H_sql); $H_sqlar['limit'] = -1; } $H_order_i = strrpos($H_sql,"order by"); if($H_order_i){ $H_sqlar['where'] = substr($H_sql,$H_where_i,$H_order_i-$H_where_i); $H_sqlar['order'] = substr($H_sql,$H_order_i,$H_limit_i-$H_order_i); }else{ $H_sqlar['where'] = substr($H_sql,$H_where_i,strlen($H_sql)-$H_where_i); $H_sqlar['order'] = ""; } $H_sqlxa = $H_sqlar['opton'].(($H_sqlar['limit'] == -1)?'':(" top ".$H_sqlar['limit'][2])).$H_sqlar['filed'][0].$H_sqlar['from'].$H_sqlar['where']; $H_sqlxb = $H_sqlar['opton']." count(*) as H_sumss ".$H_sqlar['from'].$H_sqlar['where']; if($H_sqlar['limit'][1] > 0){ $H_sql = trim($H_sqlxa.($H_sqlar['wheref'] ?' and':' where ')." id >= ".$H_sqlar['limit'][1]." ".$H_sqlar['order']); }else $H_sql = trim($H_sqlxa.$H_sqlar['order']); $H_sqln = trim($H_sqlxb); return array('datas' => $H_sqlar,'sql' => $H_sql,'sqln' => $H_sqln); } function conn(){ $H_data_mdbs = 'data.mdb'; /** 数据库文件 */ $H_data_user = 'tx'; /** 用户名 */ $H_data_pass = 'yin273642232'; /** 密码 */ $H_const="DRIVER={Microsoft Access Driver (*.mdb)};DBQ=".realpath($H_data_mdbs).";"; $H_conn=odbc_connect($H_const,$H_data_user,$H_data_pass,SQL_CUR_USE_ODBC); /** 连接数据库 */ return $H_conn; } function get_datas($H_conn,$H_sql,$H_sqln,$H_sqlar){ $H_resid = odbc_do($H_conn, $H_sqln); /** 执行sql */ $H_sumss = 0; /** 总记录数 */ $H_sizes = 12; /** 每页条数 */ $H_count = 0; /** 总页数 */ $H_start = $H_sqlar['limit'][1]; /** 开始数 */ $H_stops = $H_sqlar['limit'][2]; /** 结束数 */ while(odbc_fetch_row($H_resid)){ $H_sumss = odbc_result($H_resid,'H_sumss'); break;} $H_count = $H_sumss < 1 ? 0 : ceil($H_sumss/$H_sizes); $H_resid = odbc_do($H_conn, $H_sql); $H_file_len = odbc_num_fields($H_resid); $H_datas = array(); while(odbc_fetch_row($H_resid)){ $H_dataf = array(); for($H_i =1;$H_i <= $H_file_len;$H_i++){ $H_tname = odbc_field_name($H_resid,$H_i); $H_tresu = odbc_result($H_resid,$H_i); $H_dataf[$H_i-1] = $H_tresu; $H_dataf[$H_tname] = $H_tresu; } $H_datas[] = $H_dataf; } return $H_datas; } $H_conn= conn(); echo '原有SQL: ',$H_sql = "select * from data_basic where basnm like '%k%' order by id limit 6,12"; echo ''; $H_acsql = mysql_acess($H_sql); echo '记录SQL: ',$H_sql = $H_acsql['sql']; echo ''; echo '条数SQL: ',$H_sqln = $H_acsql['sqln']; echo ''; $H_datas = get_datas($H_conn,$H_sql,$H_sqln,$H_sqlar); odbc_close($H_conn); echo ''; print_r($H_datas); echo ''; ?>