写在前:

  项目的数据库是sql server,但是自己的系统是mac os。这样导致了需要一个烦人的系统环境搭建过程。目前要在mac 上的php环境中支持mssql环境访问,经过自己了解,有两种方式:

   一、ADOdb是Active Data Objects database的简称,它是一种PHP存取数据库的函式组件。它允许程序员以一致的方式来存取数据库,从而忽略后台数据库的种类的差异。它的优势是能让程序员在转移数据库平台时,可以不用花费大量时间重新书写代码。笔者花了大量时间在该环境的搭建中,但是没成功运行。数据库总是显示连接不上,希望有探究精神的童鞋能够研究一下,然后做一个share link。

    二、FreeTDS +ODBC.在进行方式一的时候,发现phpinfo()对mssql的支持情况。而xampp集成了FreeTDS,这能很方便我们对这个环境进行搭建。笔者使用这种方式很快就搭建完成。接下来说说方式二的搭建过程。

工作环境:

OS:MAC OS

php环境: xampp+unixODBC+远程MSSQL

配置过程:

  一:xampp 环境搭建(略)。

    与常规的安装过程相同,参考连接:https://netbeans.org/kb/docs/php/configure-php-environment-windows_zh_CN.html 。

这里要说的是安全设置:默认情况安全状态都为不安全,要对其进行更改,只需要在终端运行:/Applications/XAMPP/xamppfiles/xampp security  ,按照提示进行密码设置就可以了。xampp默认帐户名为xampp,mysql 默认帐户名为root

    

2.配置过程中,修改环境运行目录:

DocumentRoot "/Applications/XAMPP/xamppfiles/phplocalhost"
<Directory "/Applications/XAMPP/xamppfiles/phplocalhost">

二、对FreeTDS 进行配置。

    1.打开用文本编辑器或者终端vim 对/Applications/XAMPP/xamppfiles/etc中的freetds.conf 文件进行配置。在末位填入以下内容。

        

    上面的 mstest 就是我们自己决定的一个名字,在连接数据库或者配置 ODBC 数据源的时候需要通过它来引用。port 1433 一般不需要修改。client charset 指定为 UTF-8,为了解决中文乱码而添加。

2、 终端输入命令:

       a. cd /Applications/XAMPP/xamppfiles/bin         //转移到xampp  的目录下

         b.   ./tsql -H 数据库ip -p 端口 -U 帐号 -P 密码 -D 数据库名             //中文内容自行修改,与上图中内容相同。

      若无错误提示,说明安装成功。提示内容大概如下:

       locale charset is “GB2312″

       Default database being set to gxt100

       1>

三、安装UnixODBC。

      笔者安装的是UnixODBC-2.3.2,在根目录里的man文件夹下找到odbcinst.ini.5 和odbc.ini.5对其进行配置。

    odbcinst.ini.5

      

    odbc.ini.5

        

   使用:iodbctest "UID=sa;PWD=123;DSN=mssql 进行测试。  //帐号、密码dsn自行填充,

   若出现 '>' 箭头表示成功,说明终端在等待下一个命令。

四、编写php代码进行测试:

<?php
//include('./adodb5/adodb.inc.php');
$sql = 'select * from C_USER';
$conn = mssql_connect('mstest', 'sa', '123')or die('Could not connect to the server!');
mssql_select_db('wx_turnplate') or die('Could not select a database.');
$result = mssql_query($sql)or die('A error occured: ' . mysql_error()); while (($Row = mssql_fetch_assoc($result)))
{
print $Row['U_name'] . "<br\>";//字段名U_name 用户名。
}
mssql_close($conn);
?>

oops: have fun~

mac os PHP 访问MSSQL的更多相关文章

  1. Mac OS X 访问 Windows 共享文件夹

    Mac OS X 访问 Windows 共享文件夹 mac没有网络邻居,但可以使用finder访问局域网中windows共享的文件 1.点击 Finder 前往菜单中的「前往服务器」(或快捷键 com ...

  2. mac常用快捷键,Mac文件重命名快捷键,Mac OS快速访问系统根目录, MacOS 10.11重要数据的存储位置大全

    command+r,相当于F5,刷新页面 command+F5,启动voiceover command+q 关闭当前程序 在Finder中command+/ 打开底部状态栏,可以查看剩余磁盘空间大小 ...

  3. Mac OS访问Windows共享文件夹

    原文地址:http://blog.csdn.net/jinhill/article/details/7246922 最近开始研究Mac OS,遇到的第一个问题就是如何在Mac OS中访问Windows ...

  4. 在 Mac OS X 上创建的 .NET 命令行程序访问数据库 (使用Entity Framework 7 )

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  5. Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验

    Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...

  6. Mac OS 使用 Vagrant 管理虚拟机(VirtualBox)

    Vagrant(官网.github)是一款构建虚拟开发环境的工具,支持 Window,Linux,Mac OS,Vagrant 中的 Boxes 概念类似于 Docker(实质是不同的),你可以把它看 ...

  7. Mac OS、Ubuntu 安装及使用 Consul

    Consul 概念(摘录): Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,比如 Airbnb 的 SmartStac ...

  8. Atitit mac os 版本 新特性 attilax大总结

    Atitit mac os 版本 新特性 attilax大总结 1. Macos概述1 2. 早期2 2.1. Macintosh OS (系统 1.0)  1984年2 2.2. Mac OS 7. ...

  9. 在Mac OS X中配置Apache + PHP + MySQL

    在Mac OS X中配置Apache + PHP + MySQL Mac OS X 内置Apache 和 PHP,使用起来非常方便.本文以Mac OS X 10.6.3和为例.主要内容包括: 启动Ap ...

随机推荐

  1. perl第三章 列表和数组

    访问数组中的元素    $fred[0]   $fred[1] $number=2.75; print $fred[$number-1]  结果就是print $fred[1] 特殊的数组索引1.对索 ...

  2. 思路清奇:通过 JavaScript 获取移动设备的型号

    我们一般在浏览器里识别用户的访问设备都是通过 User Agent 这个字段来获取的,但是通过它我们只能获取一个大概的信息,比如你用的是 Mac 还是 Windows,用的是 iPhone 还是 iP ...

  3. tornado中文教程

    http://docs.pythontab.com/tornado/introduction-to-tornado/ch2.html#ch2-1 python的各种库的中文教程 http://docs ...

  4. bootstrap 中dropmenu不起作用

    今天在使用bootstrap发现dropmenu一直不起作用,代码是从官网拷贝过来. 网上查找可以用的页面进行一点点的去除分析,发现竟然是顺序反了导致的. 在使用dropmenu时需要引入jquery ...

  5. 设计模式(二 & 三)工厂模式:3-抽象工厂模式

    什么是抽象工厂? 抽象工厂模式,引入了“产品族”的概念. 何为产品族?还是以 设计模式(二)工厂模式:2-工厂方法模式 提到的 Operation 为例. 之前讨论的都是局限于 Operation 这 ...

  6. iOS开发,最新判断是否是手机号的正则表达式

    最近项目里需要判断是否为手机号并发送验证码的功能,一下是实现方法.不过这个方法还是有些不足,只能判断输入的11位数的号段是否正确,无法判断手机号是否存在.不过勉强可以使用! + (NSString * ...

  7. 【bzoj1585】[Usaco2009 Mar]Earthquake Damage 2 地震伤害 网络流最小割

    题目描述 Farmer John的农场里有P个牧场,有C条无向道路连接着他们,第i条道路连接着两个牧场Ai和Bi,注意可能有很多条道路连接着相同的Ai和Bi,并且Ai有可能和Bi相等.Farmer J ...

  8. 刷题总结——拆网线(noip模拟 贪心)

    题目: 给定一颗树··在保证有k个点与其它点连接的情况下问最少保留多少条边···· 树的节点树n和k均小于100000: 题解: 很容易看出来我们要尽量保留那种一条边连两个节点的情况···· 然后考试 ...

  9. 面试题之redis的内存回收策略

    1.maxmemory-policy noeviction(默认):内存空间不足会报错 2.allkeys-lru:最少使用的数据去淘汰 3.allkeys-random:随机淘汰一些key 4.vo ...

  10. Milk Patterns(poj 3261)

    题意:找出出现k次的可重叠的最长子串的长度. /* 求出height数组,二分答案,将height分组,看有没有一组个数大于K. WA了很多遍,最后看别人的题解,发现往字符串后面填了一个0,就可以AC ...