前面使用VBS将Excel数据写入到了Ms Sql Server 2014的数据库,现在要将记录显示出来,本来打算用IIS+ASP.net,可是9月份安装好Apache+PHP后一直没有写过PHP代码,还是要学一学PHP ,很多人说PHP是最好的编程语言,还是要体会一下。

  本来想着很简单的事情,没有想到又是不停地踩坑!

  先是在网上搜索了PHP读Ms Sql Server数据库的代码,照着样子写,结果总是报错,查原因,原来是PHP对读写Ms Sql Server数据库的支持文件有要求,我使用的是PHP 7.4,按照网上说的反复试,折腾了4个小时,最终报告了下面的错误:

  心气烦躁是折腾不好的,上面已经看到了曙光,必须冷静下来,查了资料,支持库有线程安全和不安全之分,还有PDO和非PDO之分,应该分别试,先用phpinfo()查看7.4的库情况,就使用PDO,加上下面的指令到php.ini中:

  extension=G:\php74\ext\php_pdo_sqlsrv_74_ts_x64.dll

  重启Apache,好了,读出数据来了!

  ● 按照上面的方法在Win7-64位系统上正常了,后面我在Win10-64位的企业版上安装Apache,数据库仍然用MS SQL Server 2014,结果却一直报告错误,折腾了好长时间才明白,需要安装ODBC,我在微软的官网上下载后安装,数据就读出来了,正常了!链接地址:Download Microsoft® ODBC Driver 11 for SQL Server® - Windows from Official Microsoft Download Center】

  ● 这个链接地址有详细资料:System requirements - PHP drivers for SQL Server | Microsoft Docs

  开始做前端显示页面,一个月前看过easyUI的资料,比较简单,看资料写代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>网络设备信息</title><link rel="stylesheet" type="text/css" href="themes/default.css"/><link rel="stylesheet" type="text/css" href="themes/default/easyui.css"><link rel="stylesheet" type="text/css" href="themes/icon.css"><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/jquery.easyui.min.js"></script>
</head>
<body><div id="dataGridToolBar"><a href="#">添加</a><input type="text" name="searchIp" id="searchIp" placeholder="请输入IP地址进行查找"></div><table id="dataGridNetInfo"><thead><tr><th data-options="field:'C01',width:100,sortable:true">IP地址</th>><th data-options="field:'C02',width:140">MAC地址</th>><th data-options="field:'C03',width:100">网关地址</th>><th data-options="field:'C04',width:100">子网掩码</th>><th data-options="field:'C05',width:90">主DNS</th>><th data-options="field:'C06',width:90">备DNS</th>><th data-options="field:'C07',width:120,formatter:operatingSystem">操作系统</th>><th data-options="field:'C08',width:80,sortable:true">内存大小</th>><th data-options="field:'C09',width:80,sortable:true">硬盘大小</th>><th data-options="field:'C10',width:180">硬盘系列号</th>><th data-options="field:'C11',width:100">CPU</th>><th data-options="field:'C12',width:80">使用人</th>><th data-options="field:'C13',width:100">联系电话</th>><th data-options="field:'C14',width:120">设备名称</th>><th data-options="field:'C15',width:150">地点</th>><th data-options="field:'C16',width:180,hidden:true">录入时间</th>><th data-options="field:'other',width:180,formatter:operateButton">操作</th>></tr></thead></table><script>$("#dataGridNetInfo").datagrid({title:"网络设备表",iconCls:"icon-save",height:800,url:'GetInfoFromMsSqlServer.php',//加载数据URLtoolbar:"#dataGridToolBar",rownumbers:true,//加入行号checkOnSelect:true,fitColumns:false,//列宽自适应striped:true,//斑马线//datagrid数据加载完毕之后执行的代码onLoadSuccess:function () {$(".opAdd").linkbutton({iconCls:"icon-cancel",});$(".opUpdate").linkbutton({iconCls:"icon-edit",});},pagination:true,});$("#dataGridToolBar>a:contains(删除)").linkbutton({iconCls:"icon-remove",});$("#dataGridToolBar>a:contains(添加)").linkbutton({iconCls:"icon-add",});$("#searchIp").textbox({width:220,buttonIcon:"icon-search",buttonText:"搜索",});//格式化字符串函数function operatingSystem(value,row,index) {var sReturn="other";if(value.indexOf('Windows 7')!=-1){if(value.indexOf('32-bit')>0){sReturn='Windows 7 32位';};if(value.indexOf('64-bit')>0){sReturn='Windows 7 64位';};};if(value.indexOf('Windows 10')!=-1){if(value.indexOf('32-bit')>0){sReturn='Windows 10 32位';};if(value.indexOf('64-bit')>0){sReturn='Windows 10 64位';};};if(value.indexOf('Windows XP')!=-1){sReturn='Windows XP';};return sReturn;};function operateButton(value,row,index) {return ' <a class="opAdd" ehref="#">删除</a> <a class="opUpdate" href="#">修改</a>'}</script>
</body>
</html>

  然后就是用php的编写后台代码文件,继续踩坑:

<?php
//获取具体的页数
$viewPage = isset($_POST['page']) ? intval($_POST['page']):1;
//获取每页的行数
$viewRows = isset($_POST['rows']) ? intval($_POST['rows']):10;
$offset = ($viewPage-1) * $viewRows;
$returnArr=array();
//使用pdo连接数据库:
$db = new PDO( "sqlsrv:Server=IP地址;Database=数据库名称", '用户名', '用户密码' );
//pdo设置客户端字符集:
$db->exec('set names utf8');
//得到数据表的总数
$sql="SELECT * FROM VRVEquipmentRecord";
//查询数据库的数据并返回结果集(预处理对象):
$result=$db->query($sql);
$rows=$result->fetchAll(PDO::FETCH_ASSOC);
$returnArr['total']=sizeof($rows);
//准备返回的数据记录
$sql="SELECT TOP $viewRows * FROM VRVEquipmentRecord WHERE c02 NOT IN ( SELECT TOP $offset c02 FROM VRVEquipmentRecord ORDER BY c02 ) ORDER BY c02";
$result=$db->query($sql);
$rows=$result->fetchAll(PDO::FETCH_ASSOC);
$returnArr['rows']=$rows;
echo json_encode($returnArr);
?>

  显示结果:

  折腾了一整天,终于搞定了。

PHP(2):PHP读取MS Sql Server 2014数据库数据相关推荐

  1. SQL Server 2014 数据库误删数据的恢复处理

    一.序言 作为程序开发人员或 DBA,经常会接触到数据库(以 SQL Server 2014 数据库为例)的增.删.改查操作.执行 delete 语句时不小心误删数据表的记录情况,而数据库之前又没有任 ...

  2. OpenShift 4 之 高可靠运行MS SQL Server 2019数据库

    <OpenShift 4.x HOL教程汇总> 文章目录 运行MS SQL Server数据库 在本地的RHEL上安装MS SQL Server客户端 为MS SQL Server的数据库 ...

  3. Qt连接SQL Server 2014数据库

    Qt连接SQL Server 2014数据库 1. 建立目标数据库 连接数据库之前,需先在SQL Server中建立一个目标数据库,建立数据库和添加表的步骤这里不详述. 如建立一个名为DataBase ...

  4. SQL Server 2014 数据库远程连接配置

    SQL Server 2014 数据库远程连接配置的步骤如下: 1.在SQLSERVER Mangerment Studio中 2.在SQLSERVER Configuration Manger中 3 ...

  5. SQL server获取数据库数据

    SQL server获取数据库数据 两表对比,查询A表中缺少的字段 例如 获取数据库指定表中的列 例如 获取某个存储过程的参数 两表对比,查询A表中缺少的字段 select a.name as nam ...

  6. MS Sql Server查询数据库文件大小和剩余空间,数据库日志压缩

    Sql Server查询数据库文件大小和剩余空间,数据库日志压缩 A.磁盘空间的使用情况及各数据库数据文件及日志文件的大小及使用利用率 1.查询各个磁盘分区的剩余空间: 2.查询数据库的数据文件及日志 ...

  7. Oracle\MS SQL Server的数据库多表关联更新UPDATE与多表更新

    一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据.我们先来讨论根据其他表数据更新你要更新的表 一.MS    S ...

  8. 卸载Sql Server 2014数据库

    温馨提示:卸载数据库之前,必须做好数据库数据备份!做好数据库数据备份!做好数据库数据备份!重要的事情说三遍. 1.相关准备工作. (1)在运行中输入services.msc,然后找到所有跟Sql Se ...

  9. 安装和卸载 MS SQL Server 2012数据库

    卸载数据库大体分三大步 (1)控制面板卸载所有SQL Server相关的软件: (2)删除本地的SQL Server相关文件; (3)删注册表. 卸载SQL Server 2012数据库 1.打开控制 ...

最新文章

  1. 利用ZYNQ SOC快速打开算法验证通路(5)——system generator算法IP导入IP integrator
  2. idea mybatis plugin插件,免费mybatis插件
  3. 上手必备!不可错过的TensorFlow、PyTorch和Keras样例资源
  4. python3 获取文件夹中的文件列表
  5. python飞机大战源代码-python版飞机大战代码分享
  6. Postman获取App端接口
  7. POJ 3167 Cow Pattern ★(KMP好题)
  8. 工作140:封装写法
  9. linux qt sql,linux qt联接sqlserver怎么配置服务器
  10. 你的密码安全吗?——索尼事件的教训
  11. WCF宿主与服务托管
  12. 只收藏不点赞的人是什么心理???
  13. 微信iOS 7.0.5版本终于上线:新功能好方便!
  14. 【TWVRP】基于matlab遗传算法求解带时间窗的车辆路径问题【含Matlab源码 002期】
  15. lisp 阿基米德螺旋_用Auto CAD怎样画椭圆螺旋
  16. Vim快捷键(一):文档操作与文本插入
  17. 一文了解知识图谱能做什么、本文含Jiagu自然语言处理工具试用、知识图谱实战。
  18. linux 2t gpt 分区,linux大于2T的磁盘使用GPT分区方式
  19. 1156 十个成绩排序
  20. Win10下修改git全部配置文件方法

热门文章

  1. 警惕感冒不仅会头痛脑热,还可能引发致盲性眼病
  2. 开个代理记账公司是否有前途
  3. 必会的这15个Mysql优化问题,面试官、DBA都要高看你一眼,速度收藏
  4. table合并单元格 colspan(跨列)和rowspan(跨行)
  5. 一文就懂HashMap原理!学不会你来砍我!
  6. 那些年啊,那些事——一个程序员的奋斗史 ——121
  7. C# unity 中实现汉字转拼音
  8. SSD 4K对齐正确做法是这样!
  9. PyTorh笔记 - LN: Layer Normalization
  10. 技术2---swagger2