使用php来访问操作sql server
使用php来访问操作sql server
在此分成三步走:
第一部:查看配置,下载文件
首先查看自己的php和sql server版本
Php文件输入echo PHP_VERSION 运行脚本就可以看到
如果是php7,则搭配sql server2016 ,即若你的php版本是7那么sql server必须是2016
其余的根据以下信息来搭配
SQLSRV 的版本与php的关系
Version 4.0 supports PHP 7.0+
Version 3.2 supports PHP 5.6, 5.5, and 5.4
Version 3.1 supports PHP 5.5 and 5.4
Version 3.0 supports PHP 5.4.
SQLSRV 与ODBC driver for server的关系
Version 4.0 ODBC Driver 11 或者 ODBC Driver 13.
Versions 3.2/ 3.1 ODBC Driver 11.
Version 3.0 Microsoft SQL Server 2012 Native Client x86. (若为php5.4建议使用version3.1或3.2)
ODBC driver for server 与sql server版本的关系
ODBC driver 11 支持Microsoft SQL Server 2005, 2008, 2008 R2, SQL Server 2012, SQL Server 2014 and Windows Azure SQL Database
ODBC driver 13 支持 Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012, SQL Server 2014, SQL Server 2016 (Preview), Analytics Platform System, Azure SQL Database and Azure SQL Data Warehouse.
比如我的是sql server 2008 R2 和php5.5
选择可以选择的SQLSRV为3.1或3.2版本,对应的ODBC driver时ODBC driver11,ODBC drive11 支持的sql server中有sql server 2008 R2,所以最后选择的是ODBC driver 11 和SQLSRV3.1或3.2
今天徒弟的机子上的环境是sql server 2016 和php7
所以选择的是ODBC driver 13 和SQLSRV4.0
选好后下载相应的文件,下载地址如下:
ODBC Driver 11 for sql server 下载地址https://www.microsoft.com/en-us/download/details.aspx?id=36434
ODBC Driver 13 for sql server下载地址https://www.microsoft.com/en-us/download/details.aspx?id=50420
SQLSRV 下载地址https://www.microsoft.com/en-us/download/details.aspx?id=20098
第二步:安装PHP扩展
新建一个php文件输入<?php phpinfo() ; ?>在浏览器里运行php文件,找到PHP Extension Build选项

可以看到它的值里有TS或者NTS,记录下来
查看php扩展路径打开php安装目录下的php.ini 文件搜索extension_dir
查看它的值如下

双击下载下来的SQLSRV文件,
随便解压到一个路径下,解压后打开目录,选择里面的
php_pdo_sqlsrv_55_ts.dll和
php_sqlsrv_55_ts.dll两个文件,其中的55是php版本号5.5 ,ts是PHP Extension Build选项里得出的,我本地环境是TS,如果你的是NTS 则选择的是NTS文件
把选中的两个文件复制到php扩展路径下,如C://xampp/php/ext
在php.ini文件里加上如下两行

其实就是你刚才复制的两个文件,其中的数字55 和ts可能有所不同
保存配置文件,重启服务器apache,运行刚才的脚本看是否有PDO_SQLSRV
如下:

若有那么恭喜你成功了第二步
第三步:安装驱动器,设置sql server
双击安装下载下来的ODBC driver文件,安装完成后设置sql server
打开sql server management studio 使用sql server的用户名和密码登录

若不能登录则使用windows系统登录,对着服务器名右键->属性->安全性,选中”sql server和windows身份验证模式”

保存,
点击安全性->登录名 对着用户名(sa)右键->属性->常规 更改密码,状态里选择授予和登录

保存编辑
重启sql server服务看是否可以用账号密码登录,只到可以登录未止。
打开SQL SERVE R配置管理工具:
点击sql server网络配置协议在右侧启动TCP/IP,对TCP/IP右键->启动,右键->属性->IP地址,在最下方的IPALL 里的TCP发端口改为1433

保存,同时对客户端协议做同样的操作,重启sql server服务
到此第三步完成
测试:新建PHP文件,输入如下代码:
<?php
class sql{
private $serverName = "LXBDELL\SQLEXPRESS"; //sql server链接实例名
private $connectionInfo = array("UID"=>"sa","PWD"=>"lxb106170","Database"=>"test"); //配置用户名,密码,数据库
public $sql = "SELECT Name FROM Master..SysDatabases ORDER BY Name"; //默认的sql语句
public $result;
public $conn = '';
public function __construct( $name ='' , $user ='' , $pwd ='' ,$db = '' ){
if( $name ){
$this->serverName = $name;
}
if( $user ){
$this->connection['UID'] = $user;
}
if( $pwd ){
$this->connection['PWD'] = $pwd;
}
if( $db ){
$this->connection['Database'] = $db;
}
//connect to sqlserver
if( !$this->conn ){
$this->conn = sqlsrv_connect( $this->serverName, $this->connectionInfo)
or die( sqlsrv_errors() );
}
}
public function doQuery( $sql ){
if(!$this->conn){
return " sorry ,can't to link server" ;
}
if( $sql ){
$this->sql = $sql ;
}
$this->result = sqlsrv_query($this->conn,$this->sql) ;
return $this->result;
}
public function close(){
if($this->conn){
sqlsrv_close ( $this->conn ) ;
}
}
}
//phpinfo();
$server = new sql();
$sql = "select * from [user] "; //sql语句写在这
$result = $server->doQuery( $sql ); //查询返回的句柄
$output = '';
if ( ! is_string( $result )){
while ( $re = sqlsrv_fetch_array ( $result )){ //sqlsrv_fetch_array 通过查询结果句柄获取查询结果
//$output[] = $re; //打印查询结果
var_dump( $re ) ;
}
}else{
echo $result;
}
?>
替换其中的serverName ,UID ,PWD ,Database
ServerName是sql server的实例名,UID是登录名,PWD是密码.运行脚本可以知道是否链接成功
已经从sql server数据库里读出数据了
二〇一六年十二月二十日星期二
梁小兵
使用php来访问操作sql server的更多相关文章
- [转]C#操作SQL Server数据库
转自:C#操作SQL Server数据库 1.概述 ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤: 第一,使用SqlConnection对象连接数据库: 第二,建立SqlComman ...
- Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码)
Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码) http://blog.csdn.net/helonsy/article/details/7207497 ...
- PHP操作SQL Server 2008/2012
PHP操作SQL Server驱动,微软官方提供2个版本,Version 2.0 和 Version 3.0 Version 2.0 版本支持的操作系统有: Windows Server 2003 S ...
- SQL Server学习之路(七):Python3操作SQL Server数据库
0.目录 1.前言 2.准备工作 3.简单测试语句 4.提交与回滚 5.封装成类的写法 1.前言 前面学完了SQL Server的基本语法,接下来学习如何在程序中使用sql,毕竟不能在程序中使用的话, ...
- Nodejs 操作 Sql Server
Nodejs 操作 Sql Server Intro 最近项目需要爬取一些数据,数据有加密,前端的js又被混淆了,ajax请求被 hook 了,有些复杂,最后打算使用 puppeteer 来爬取数据. ...
- 数据库SQL Server2012笔记(七)——java 程序操作sql server
1.crud(增删改查)介绍:create/retrieve/update/delete 2.JDBC介绍 1)JDBC(java database connectivity,java数据库连接) 2 ...
- Python 学习笔记:Python 操作 SQL Server 数据库
最近要将数据写到数据库里,学习了一下如何用 Python 来操作 SQL Server 数据库. 一.连接数据库: 首先,我们要连接 SQL Server 数据库,需要安装 pymssql 这个第三方 ...
- 基于Spring Boot,使用JPA操作Sql Server数据库完成CRUD
完成一个RESTful服务,提供几个访问接口,用来操作较简单的联系人信息,数据保存在Sql Server数据库中. 1.使用STS创建工程. 使用STS创建RESTful工程,可以参考: <用S ...
- 开发板远程操作SQL SERVER解决方案
环境: 开发板:freescale 2.6 armv71,系统只读,唯一可以读写的路径是/tmp/sd(这是一个sd卡).程序放在/tmp/sd/transfer下(下文以运行路径代替),sql语句以 ...
随机推荐
- SQLSERVER2008新增的审核/审计功能
SQLSERVER2008新增的审核/审计功能 很多时候我们都需要对数据库或者数据库服务器实例进行审核/审计 例如对失败的登录次数进行审计,某个数据库上的DDL语句进行审计,某个数据库表里面的dele ...
- 建立自己的Visual Studio工程模板
如果你需要经常创建自己的特殊工程的话,那么预先建立自定义的工程模块,可能会让你的工作变得更轻松一些. 实现方法很简单,一共只需要六个步骤: 一. 新建工程 * 这里选用空白的Web工程. 二. 建立必 ...
- jquery选择器如何获取父级元素、同级元素、子元素
一.新建页面 <ul> <li>list item 1</li> <li>list item 2</li> <li class=&qu ...
- [后端人员耍前端系列]AngularJs篇:使用AngularJs打造一个简易权限系统
一.引言 上一篇博文已经向大家介绍了AngularJS核心的一些知识点,在这篇博文将介绍如何把AngularJs应用到实际项目中.本篇博文将使用AngularJS来打造一个简易的权限管理系统.下面不多 ...
- STC12C5A60S2笔记4(复位)
1. 基本特性 STC 单片机有5种复位方式: 1) 热启动复位: 1.1)外部RST引脚复位 第一功能复位脚,即管脚9 RST/P4.7,该管脚拉高维持24个时钟周期+10ms后,单片机进入复位状态 ...
- 基于java的设计模式入门(1)——为什么要学习设计模式
大年初一,楼主在这里给大家拜年,祝大家码上升职加薪,码上有对象结婚,码上有车有房,幸福安康. 过完年,回学校注册报道之后,大概就要回深圳到公司开始实习了.提高自己,无非就有两种方式,一是看书学习,二是 ...
- HTTP学习笔记(五)
目前,市场上流行有很多web服务器软件,每种服务器都有自己的特点.我们在开发的过程中,经常要和它们打交道,所以了解它们的工作原理也是很重要的. 几款比较流行的服务器 它们会做些什么? 第三篇中有这样的 ...
- jQuery 绑定事件到动态创建的元素上
在进入主题之前,我们先来看一个前台页面经常用到的功能:点击页面输入框时自动选择其中文本. 很容易想到利用输入框的focus事件,当输入框获得焦点时,再调用jQuery的select()方法. Okay ...
- 生成格式化的json
public static ContentResult returnJson(object obj) { var content = new ContentResult() { Content = J ...
- MySQL账户安全设置
一般来说,安装完MySQL后,默认的用户是root,密码123456,外网不能访问. 有时候也希望在外网访问,则可以添加一个账户.建议不要用root. 如下表,存在安全问题: mysql> se ...