php读取mssql时间显示格式解决办法
代码如下 | 复制代码 |
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC)) } 结果是 DateTime Object |
解决办法
第一个方法:php文档开头定义ini_set(”mssql.datetimeconvert”,0);
第二个方法:修改php.ini,找到;mssql.datetimeconvert = On ,去掉前面的分号,修改on为off。
第三个方法:只有把mssql的时间字段用convert函数转换成字符串。
比如 SELECT *,convert(char,datetime字段,120) as str_datetime FROM 表名
这个str_datetime就是字符串了。第三个参数为120,刚好是我们需要的格式 yyyy-mm-dd hh:ii:ss
我们知道新版的php5.3是不支持mysql自带的mssql_connect这个数据连接函数,如果需要连接sqlserver数据库,我们只能使用了com 接口来做哦。1.Com链接,ADODB.Connection
代码如下 | 复制代码 |
$conn = new Com(“ADODB.Connection”); //实例化一个Connection对象 $rs->Open(‘select * from News where bigclassid = 59 And LeadPostil is null’, $conn, 1, 1); $arr_result[$i]['Title'] = addslashes($rs->Fields(‘Title’)->Value);//标题 } |
2.ODBC连接mssql
代码如下 | 复制代码 |
$dbhost = ”; $connect=odbc_connect(“Driver={SQL Server};Server=$dbhost;Database=$dbname”,”$dbuser”,”$dbpass”); |
代码如下 | 复制代码 |
<?php $conn = mysql_connect('localhost','root','password'); var_dump($conn); ?> |
基本就是改配置文件php.ini
首先要确保php.ini中extension_dir = "./ext",该设置是php引用dll的目录;
1.将php文件夹下libmysql.dll和php5ts.dll两个文件拷贝至windows目录下的system32下;或者在环境变量中增加D:php;D:phpext。这两个目录是php的安装目录和扩展dll的目录。
2.修改windows安装目录下的php.ini 去掉;extension=php_mysql.dll前面的分号;
3.extension_dir = "d:phpext (文件在PHP.INI中)。
你看看你的php.ini的配置找到
代码如下 | 复制代码 |
extension=php_mysql.dll |
我用的是apache,所以如果还这行的话,再看看主配置文件里的路径和引用都设置好了没有 PHPIniDir "PHP.INI的路径" 还要加一句 LoadModule*************的内容 这个网上都可以找得到。一般情况下到这里基本可以解决。
找到你的PHP根目录,找到两个文件 libmysql.dll和php5ts.dll 将之复制到system32下面。记住是PHP下面的。不是MYSQL
PHPEXCEL是一个用来生成excel的php插件,他可以很方便的对excel数据进行操作,如:生成excel,修改excel数据等等。一、PHPEXCEL简介
PHPEXCEL提供了一系列的API,能够解析与生成excel,pdf之类的文档。
PHPEXCEL虽然强大,不过使用起来相对有些繁锁,如果需要输出较为复杂格式时,是一个不错的选择。可以到官方下载到源码。
二、PHPEXCEL部分函数
设置当前的工作簿,返回该工作簿对象:
$excelSheet = $excel->setActiveSheetIndex(0);
合并单元格,返回该单元格对象,以下示例即合并A列第一行与第二行所在单元格:
代码如下 | 复制代码 |
$excelSheet->mergeCells('A1:A2'); 设置单元格的值,参数:单元格名称,值: |
phpexcel用法介绍
代码如下 | 复制代码 |
include ‘PHPExcel.php’; include ‘PHPExcel/Writer/Excel2007.php’; //或者include ‘PHPExcel/Writer/Excel5.php’; 用于输出.xls的 创建一个excel $objPHPExcel = new PHPExcel(); 保存excel—2007格式 $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); //或者$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); 非2007格式 $objWriter->save(”xxx.xlsx”); 直接输出到浏览器 $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); header(”Pragma: public”); header(”Expires: 0″); header(”Cache-Control:must-revalidate, post-check=0, pre-check=0″); header(”Content-Type:application/force-download”); header(”Content-Type:application/vnd.ms-execl”); header(”Content-Type:application/octet-stream”); header(”Content-Type:application/download”);; header(’Content-Disposition:attachment;filename=”resume.xls”‘); header(”Content-Transfer-Encoding:binary”); $objWriter->save(’php://output’);
|
——————————————————————————————————————–
设置excel的属性:
代码如下 | 复制代码 |
创建人 $objPHPExcel->getProperties()->setCreator(”Maarten Balliauw”); 最后修改人 $objPHPExcel->getProperties()->setLastModifiedBy(”Maarten Balliauw”); 标题 $objPHPExcel->getProperties()->setTitle(”Office 2007 XLSX Test Document”); 题目 $objPHPExcel->getProperties()->setSubject(”Office 2007 XLSX Test Document”); 描述 $objPHPExcel->getProperties()->setDescription(”Test document for Office 2007 XLSX, generated using PHP classes.”); 关键字 $objPHPExcel->getProperties()->setKeywords(”office 2007 openxml php”); 种类 $objPHPExcel->getProperties()->setCategory(”Test result file”); ——————————————————————————————————————– 设置当前的sheet $objPHPExcel->setActiveSheetIndex(0); 设置sheet的name $objPHPExcel->getActiveSheet()->setTitle(’Simple’); 设置单元格的值 $objPHPExcel->getActiveSheet()->setCellValue(’A1′, ‘String’); $objPHPExcel->getActiveSheet()->setCellValue(’A2′, 12); $objPHPExcel->getActiveSheet()->setCellValue(’A3′, true); $objPHPExcel->getActiveSheet()->setCellValue(’C5′, ‘=SUM(C2:C4)’); $objPHPExcel->getActiveSheet()->setCellValue(’B8′, ‘=MIN(B2:C5)’); 合并单元格 $objPHPExcel->getActiveSheet()->mergeCells(’A18:E22′); 分离单元格 $objPHPExcel->getActiveSheet()->unmergeCells(’A28:B28′); |
三、PHPEXCEL举例应用
整个代码如下(值得注意的是表头用了$orderCellData记录了每个商户编号的顺序,为了在表体把对应的数据取出):
代码如下 | 复制代码 |
<<?php
require_once '../../../libs/PHPExcel/Classes/PHPExcel.php'; require_once '../../../libs/PHPExcel/Classes/PHPExcel/Writer/Excel5.php'; include_once '../../../libs/PHPExcel/Classes/PHPExcel/IOFactory.php'; include '../common/config.php'; // 创建一个处理对象实例(此对象对于2003 2007是相同的) $objExcel = new PHPExcel();
//设置属性(这段代码无关紧要,其中的内容可以替换为你需要的) $objExcel->getProperties()->setCreator("office 2003 excel"); $objExcel->getProperties()->setLastModifiedBy("office 2003 excel"); $objExcel->getProperties()->setTitle("Office 2003 XLS Test Document"); $objExcel->getProperties()->setSubject("Office 2003 XLS Test Document"); $objExcel->getProperties()->setDescription("Test document for Office 2003 XLS, generated using PHP classes."); $objExcel->getProperties()->setKeywords("office 2003 openxml php"); $objExcel->getProperties()->setCategory("Test result file");
//开始处理数据(索引从0开始) $objExcel->setActiveSheetIndex(0);
$conn = mssql_connect($config['mssql']['host'],$config['mssql']['user'],$config['mssql']['password']); mssql_select_db($config['mssql']['dbname'],$conn);
$tm=$_REQUEST['tm'];
$sql = "exec HNow05_getTTSpace '','".$tm."','',1"; $sql=mb_convert_encoding($sql,'GBK','UTF-8'); $res=mssql_query($sql);
$i=0; $k = array('站码','站名','河系','来报时间','水位','水势'); $count = count($k); $arrs = array('A','B','C','D','E','F'); //添加表头 for($i=0;$i<$count;$i++){ $objExcel->getActiveSheet()->setCellValue($arrs[$i]."1", "$k[$i]");
}
/*--------从数据库读取数据-------*/ $i=0; while($arr=mssql_fetch_array($res)) { $stcd = $arr["STCD"]; $stnm = $arr["STNM"]; $rvnm = $arr["RVNM"]; $tm= $arr["TM"]; $tdz= $arr["TDZ"]; $tdptn= $arr["TDPTN"]; if($tdptn=='6'){ $tdptn='平'; }else if($tdptn=='5'){ $tdptn='涨'; }else if($tdptn=='4'){ $tdptn='落'; }
$u1=$i+2; $stnm=iconv("GBK","utf-8",$stnm); $rvnm=iconv("GBK","utf-8",$rvnm); $tm=iconv("GBK","utf-8",$tm);
/*----------写入内容-------------*/ $objExcel->getActiveSheet()->setCellValue('a'.$u1, "$stcd"); $objExcel->getActiveSheet()->setCellValue('b'.$u1, "$stnm"); $objExcel->getActiveSheet()->setCellValue('c'.$u1, "$rvnm"); $objExcel->getActiveSheet()->setCellValue('d'.$u1, "$tm"); $objExcel->getActiveSheet()->setCellValue('e'.$u1, "$tdz"); $objExcel->getActiveSheet()->setCellValue('f'.$u1, "$tdptn");
$i++; }
/*----------设置单元格边框和颜色-------------*/ $rows = mssql_num_rows($res); for($i=0;$i<($rows+1);$i++){ for($j=0;$j<$count;$j++){ $a = $i+1; $objExcel->getActiveSheet()->getStyle($arrs[$j].$a)->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); $objExcel->getActiveSheet()->getStyle($arrs[$j].$a)->getBorders()->getAllBorders()->getColor()->setARGB('FF00BBcc'); //水平居中 $objExcel->getActiveSheet()->getStyle($arrs[$j].$a)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); } }
// 高置列的宽度 $objExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10); $objExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15); $objExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15); $objExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20); $objExcel->getActiveSheet()->getColumnDimension('E')->setWidth(10); $objExcel->getActiveSheet()->getColumnDimension('F')->setWidth(10);
// 设置页眉和页脚。如果没有不同的标题奇数/即使是使用单头假定. $objExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&BPersonal cash register&RPrinted on &D'); $objExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objExcel->getProperties()->getTitle() . '&RPage &P of &N');
// 设置页方向和规模 $objExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT); $objExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
// 重命名表 $objExcel->getActiveSheet()->setTitle('实时潮汐情况');
// Set active sheet index to the first sheet, so Excel opens this as the first sheet $objExcel->setActiveSheetIndex(0);
// Redirect output to a client’s web browser (Excel5)保存为excel2003格式 //设置Excel的名字 $excelName = '实时潮汐情况('.$tm.')'; //$excelName = 'Excel_'.date("YmdHis"); header('Content-Type: application/vnd.ms-excel'); header('Cache-Control: max-age=0'); header( 'Content-Disposition: attachment; filename='.iconv("utf-8", "GBK", $excelName).'.xls'); $objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel5'); $objWriter->save('php://output');
|
昨天在使用phpmyadmin连接mysql时出现了#2002 – 服务器没有响应 (或者本地 MySQL 服务器的套接字没有正确配置),但我利用php连接没有问题如
代码如下 | 复制代码 |
<?php |
后来想相MySQL数据库服务器的地址应该改成127.0.0.1,
具体方法:
打开我们刚才拷贝到phpMyAdmin目录下的config.inc.php 中
找到这句话:
代码如下 | 复制代码 |
$cfg['Servers'][$i]['host'] = 'localhost'; 改成 $cfg['Servers'][$i]['host'] = '127.0.0.1'; |
这样即可了 ,导致这个问题的原因我觉得应该是host文件解析有问题,大家处理一应该就好了。
相关文章
PHP session_start()很慢问题分析与解决办法
本文章来给各位同学介绍一下关于PHP session_start()很慢问题分析与解决办法,希望碰到此问题的同学可进入参考。 最近在做东西的时候发现一个问题 有一个接口挂...2016-11-25php中json_decode()和json_encode()用法与中文不显示解决办法
本文章介绍了关于php中json_decode()和json_encode()用法与中文不显示解决办法,有需要的朋友可以参考一下下。 php中json_decode()和json_encode() 1.json_decode(...2016-11-25- 在php中我们如果要导入excel数据我们通常会使用phpexcel插件了,但是有朋友会发与使用phpexcel导出数据出现身份证后四位是0000情况了,下面我们就来看解决办法。 最...2016-11-25
- 401是HTTP状态码的一种,属于“请示错误”,表示请求可能出错,已妨碍了服务器对请求的处理。具体的401错误是指:未授权,请求要求进行身份验证。登录后,服务器可能会返回对页面...2017-01-22
- Apache status 503 的原因大致有如下几种情况 : 1、 CPU 负载过高,服务器响应不过来,返回503 2、 系统连接数超限,超过MaxVhostClients的上限,返回503 3、 单IP连接数超限,超过M...2016-01-28
- 这篇文章主要介绍了在java中获取List集合中最大的日期时间操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
- 这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
- 今天用CPAN安装Term::ReadLine,报了个这样的错误 Going to read /root/.cpan/sources/modules/03modlist.data.gz Can't locate object method "data" via package "C...2016-11-25
- 这篇文章主要介绍了教你怎么用Java获取国家法定节假日,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下...2021-04-23
mysql中获取一天、一周、一月时间数据的各种sql语句写法
创建表:复制代码 代码如下:create table if not exists t( id int, addTime datetime default '0000-00-00 00:00:00′)添加两条初始数据:insert t values(1, '2012-07-12 21:00:00′);insert t values(2, '2012-07...2014-05-31- 在php中解析xml文档用专门的函数domdocument来处理,把json在php中也有相关的处理函数,我们要把数据xml 数据存到一个数据再用json_encode直接换成json数据就OK了。...2016-11-25
- 这篇文章主要介绍了.NET/C# 使用Stopwatch测量运行时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
- 下面给大家介绍phpstudy访问速度慢的解决办法。1、修改mysql数据库链接地址为ip地址127.0.0.1。2、使用最新版本,这个坑了我好久时间。下面一段内容是关于phpstudy启动失败的解决办法。php5.3、5.4和apache都是用vc9编...2015-11-24
- 自己用的小PHP应用,使用curl抓网页下来处理,为了穿墙方便,使用Privoxy作为代理,便于选择哪些网站使用proxy、哪些不用。但今天却遇到了奇怪的问题,访问google baidu这些网站居然都返回403错误,而访问其他的一些网站没事,如果...2014-05-31
- 分享给大家php判断上传文件类型的方法,大家一起学习学习。/** * 读取文件前几个字节 判断文件类型 * @return String */ function checkTitle($filename){ $file=fopen($filename, "rb"); $bin=fread($file, 2); /...2015-10-21
android.os.BinderProxy cannot be cast to com解决办法
本文章来给大家介绍关于android.os.BinderProxy cannot be cast to com解决办法,希望此文章对各位有帮助呀。 Android在绑定服务的时候出现java.lang.ClassCastExc...2016-09-20- 常用的日期时间正则表达式 下面收藏了大量的日期时间正则匹配函数,包括分钟,时间与秒都能达到。 正则表达式 (?n:^(?=d)((?<day>31(?!(.0?[2469]|11))|30(?!.0?2)|29(...2016-11-25
- 1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或执行语句: 复制代码 代码如下:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创...2015-10-21
- 实例讲解之前,先来介绍几个核心函数: mktime 函数 mktime() 函数返回一个日期的 Unix 时间戳。 参数总是表示 GMT 日期,因此 is_dst 对结果没有影响。 参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。...2015-11-08
- 这篇文章主要介绍了c# 如何对CSV文件操作,帮助大家更好的理解和学习C#,感兴趣的朋友可以了解下...2020-11-03