﻿﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>帮助信息-动天数据 &#187; php连接mssql</title>
	<atom:link href="http://www.583idc.com/news/?feed=rss2&#038;tag=php%E8%BF%9E%E6%8E%A5mssql" rel="self" type="application/rss+xml" />
	<link>http://www.583idc.com/news</link>
	<description>提供虚拟主机帮助信息</description>
	<lastBuildDate>Mon, 30 Oct 2023 02:58:59 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.41</generator>
	<item>
		<title>php连接mssql php连接mssql2005数据库代码</title>
		<link>http://www.583idc.com/news/?p=1652</link>
		<comments>http://www.583idc.com/news/?p=1652#comments</comments>
		<pubDate>Wed, 13 Dec 2017 08:40:12 +0000</pubDate>
		<dc:creator><![CDATA[dthost]]></dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[php连接mssql]]></category>

		<guid isPermaLink="false">http://www.583idc.com/news/?p=1652</guid>
		<description><![CDATA[在研究ezSQL的时候就看到了mssql_connect()等一些php提供的连接MSSQL的函数，本以为ph [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>在研究ezSQL的时候就看到了mssql_connect()等一些php提供的连接MSSQL的函数，本以为php这个开源的风靡世界的编程语言对连接微软的数据应该是不在话下的，但是到真正执行的时候，才发现困难多多。</p>
<p>一开始我下载的php版本是5.93的，下载下来添加环境变量等等搞了半天后，phpinfo（）这个函数终于成功的运行在浏览器中了。然后当我在满世界的找php_mssql.dll,才发现在5.3以及以上版本的php中已经不是原生态的支持mssql了。</p>
<p>好不容易找到了微软Microsoft Drivers 3.0 for PHP for SQL Server，心想微软的东西应该做的可以，却无奈的发现SQLSRV30.EXE没有办法运行：“SQLSRV30.EXE 不是有效的win32程序”。</p>
<p>在网上搜索了半天，总结了以下一些可行的办法，但是在这之前你需要：</p>
<p><strong>配置MICROSOFT SQL SERVER</strong></p>
<p>1、下载并安装sql server。现在这个版本就比较多了从2000 到2008不等，找一个你自己下载吧。</p>
<p>2、开放tcp/ip连接方式，使得数据库能够远程访问。SQL Server Configuration Manager -&gt; Network Configuration -&gt; Protocols -&gt; TCP/IP enabled</p>
<p>3、打开数据管理界面，添加用户和数据库。</p>
<p>4、安装php和配置IIS服务。</p>
<p>5、打开php所在文件夹里面的 php.ini文件，并添加：</p>
<div class="jb51code">
<div>
<div id="highlighter_412851" class="syntaxhighlighter  plain">
<div class="toolbar">?</div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="plain plain">mssql.textlimit = 20971520</code></div>
<div class="line number2 index1 alt1"><code class="plain plain">mssql.textsize = 20971520</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>做完了这些之后，你可以按照下面三种方法来连接数据库了：</p>
<p>使用php自带的方法连接MSSQL（5.3及以后版本不适用）</p>
<p>确保php ext扩展库文件夹下有php_mssql.dll，然后在PHP.ini中的配置中,将</p>
<p>;extension=php_mssql.dll</p>
<p>前面的“;”去掉。</p>
<p>然后你可以测试连接了：</p>
<p>首先是mssql_connect方式，这种方式比较方便，但是可能会遇到服务器没有安装mssql模块的情况。</p>
<p align="left"><span lang="EN-US" xml:lang="EN-US">$ms_host</span> <span lang="EN-US" xml:lang="EN-US">=</span> <span lang="EN-US" xml:lang="EN-US">"192.168.0.xx"</span><span lang="EN-US" xml:lang="EN-US">;</span> <span lang="EN-US" xml:lang="EN-US">//</span>主机</p>
<p align="left"><span lang="EN-US" xml:lang="EN-US">$ms_user</span> <span lang="EN-US" xml:lang="EN-US">=</span> <span lang="EN-US" xml:lang="EN-US">"sa"</span><span lang="EN-US" xml:lang="EN-US">;</span> <span lang="EN-US" xml:lang="EN-US">//</span>用户名</p>
<p align="left"><span lang="EN-US" xml:lang="EN-US">$ms_pass</span> <span lang="EN-US" xml:lang="EN-US">=</span> <span lang="EN-US" xml:lang="EN-US">"aa"</span><span lang="EN-US" xml:lang="EN-US">;</span> <span lang="EN-US" xml:lang="EN-US">//</span>密码</p>
<p align="left"><span lang="EN-US" xml:lang="EN-US">$ms_data</span> <span lang="EN-US" xml:lang="EN-US">=</span> <span lang="EN-US" xml:lang="EN-US">"test"</span><span lang="EN-US" xml:lang="EN-US">; <wbr /></span> <span lang="EN-US" xml:lang="EN-US">//MSSQL</span>库名</p>
<p align="left"><span lang="EN-US" xml:lang="EN-US">$ms_connect</span> <span lang="EN-US" xml:lang="EN-US">= mssql_connect(</span><span lang="EN-US" xml:lang="EN-US">$ms_host</span><span lang="EN-US" xml:lang="EN-US">,</span> <span lang="EN-US" xml:lang="EN-US">$ms_user</span><span lang="EN-US" xml:lang="EN-US">,</span> <span lang="EN-US" xml:lang="EN-US">$ms_pass</span><span lang="EN-US" xml:lang="EN-US">)</span></p>
<p align="left"><span lang="EN-US" xml:lang="EN-US">or</span> <span lang="EN-US" xml:lang="EN-US">die</span><span lang="EN-US" xml:lang="EN-US">(</span><span lang="EN-US" xml:lang="EN-US">"Couldn't connect to SQL Server on $</span><span lang="EN-US" xml:lang="EN-US">$ms_host</span><span lang="EN-US" xml:lang="EN-US">"</span><span lang="EN-US" xml:lang="EN-US">);</span></p>
<p align="left"><span lang="EN-US" xml:lang="EN-US"> <wbr /></span></p>
<p align="left"><span lang="EN-US" xml:lang="EN-US">$ms_select</span> <span lang="EN-US" xml:lang="EN-US">= mssql_select_db(</span><span lang="EN-US" xml:lang="EN-US">$ms_data</span><span lang="EN-US" xml:lang="EN-US">,</span> <span lang="EN-US" xml:lang="EN-US">$ms_connect</span><span lang="EN-US" xml:lang="EN-US">)</span></p>
<p align="left"><span lang="EN-US" xml:lang="EN-US">or</span> <span lang="EN-US" xml:lang="EN-US">die</span><span lang="EN-US" xml:lang="EN-US">(</span><span lang="EN-US" xml:lang="EN-US">"Couldn't open database</span> <span lang="EN-US" xml:lang="EN-US">$ms_select</span><span lang="EN-US" xml:lang="EN-US">"</span><span lang="EN-US" xml:lang="EN-US">);</span></p>
<p align="left"><span lang="EN-US" xml:lang="EN-US"> <wbr /></span></p>
<p align="left"><span lang="EN-US" xml:lang="EN-US">$update <wbr /> <wbr /> <wbr /></span> <span lang="EN-US" xml:lang="EN-US">=</span> <span lang="EN-US" xml:lang="EN-US">"SELECT reportid</span></p>
<p align="left"><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> FROM ReportInfo</span></p>
<p align="left"><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> WHERE <wbr /> (report_goods_id = '</span><span lang="EN-US" xml:lang="EN-US">$id</span><span lang="EN-US" xml:lang="EN-US">') ;"</span><span lang="EN-US" xml:lang="EN-US">;</span></p>
<p align="left"><span lang="EN-US" xml:lang="EN-US">$result</span> <span lang="EN-US" xml:lang="EN-US">= mssql_query(</span><span lang="EN-US" xml:lang="EN-US">$update</span><span lang="EN-US" xml:lang="EN-US">);</span></p>
<p><span lang="EN-US" xml:lang="EN-US">return</span> <span lang="EN-US" xml:lang="EN-US">$result</span><span lang="EN-US" xml:lang="EN-US">;</span><br />
报错可能是：<br />
(1) Call to undefined function mssql_connect() :这是因为没有开启mssql模块。<br />
①在php.ini中找到：<br />
extension=php_mssql.dll，和extension=php_pdo_mssql.dll，确定他们的前面没有“；”。<br />
②在php.ini中找到：<br />
extension_dir = "C:\php\ext\"。这里是extension目录，确认这个目录下有php_mssql.dll、php_pdo_mssql.dll。<br />
③php.ini的位置，extension_dir的位置可以使用phpinfo()查看。</p>
<p>(2)mssql_connect() : Unable to connect to server: 192.168.0.xx：连接失败，最可能是的是没有开启mssql的远程连接。这里有具体的开启方法。</p>
<p>http://tech.ccidnet.com/art/1106/20090225/1689795_1.html</p>
<p>当然，我的情况是这样设置了以后还是不能连接，后来我注意到我的服务器上有一个运行的图标，而那台虽然开启了远程连接，而且用SQL Server Management Studio也可以正常连接的服务器则没有这个图标，也许是这个原因。具体是什么情况改天问一下mssql的专家们。<br />
<img style="margin: 0px; padding: 0px; border: 0px; list-style: none;" title="php连接mssql(mssql_connect &lt;wbr&gt;和odbc方式)" src="http://s1.sinaimg.cn/middle/4ab64d13x8465cdfb7400&amp;690" alt="php连接mssql(mssql_connect &lt;wbr&gt;和odbc方式)" width="39" height="99" /><br />
因为另一台服务器是iis的，没有安装php的mssql模块，所以我采用odbc的连接方式，代码如下：</p>
<p align="left"><span lang="EN-US" xml:lang="EN-US">$ms_host</span> <span lang="EN-US" xml:lang="EN-US">=</span> <span lang="EN-US" xml:lang="EN-US">"test"</span><span lang="EN-US" xml:lang="EN-US">;</span> <span lang="EN-US" xml:lang="EN-US">//</span>这里是<span lang="EN-US" xml:lang="EN-US">ODBC</span>的连接名称</p>
<p align="left"><span lang="EN-US" xml:lang="EN-US">$ms_user</span> <span lang="EN-US" xml:lang="EN-US">=</span> <span lang="EN-US" xml:lang="EN-US">"test"</span><span lang="EN-US" xml:lang="EN-US">;</span> <span lang="EN-US" xml:lang="EN-US">//</span>用户名</p>
<p align="left"><span lang="EN-US" xml:lang="EN-US">$ms_pass</span> <span lang="EN-US" xml:lang="EN-US">=</span> <span lang="EN-US" xml:lang="EN-US">"test123"</span><span lang="EN-US" xml:lang="EN-US">;</span> <span lang="EN-US" xml:lang="EN-US">//</span>密码</p>
<p align="left"><span lang="EN-US" xml:lang="EN-US"> <wbr /></span></p>
<p><span lang="EN-US" xml:lang="EN-US">$ms_connect</span> <span lang="EN-US" xml:lang="EN-US">=odbc_connect(</span><span lang="EN-US" xml:lang="EN-US">$ms_host</span><span lang="EN-US" xml:lang="EN-US">,</span> <span lang="EN-US" xml:lang="EN-US">$ms_user</span><span lang="EN-US" xml:lang="EN-US">,</span> <span lang="EN-US" xml:lang="EN-US">$ms_pass</span><span lang="EN-US" xml:lang="EN-US">) or</span> <span lang="EN-US" xml:lang="EN-US">die</span><span lang="EN-US" xml:lang="EN-US">(</span><span lang="EN-US" xml:lang="EN-US">"Couldn't connect to SQL Server on MSSQL"</span><span lang="EN-US" xml:lang="EN-US">);</span><br />
在那台服务器上建立一个odbc连接，具体操作是：<br />
①打开控制面板-管理工具-数据源 (ODBC)-“系统DSN”的选项卡，点击“添加”，在“创建新数据源”中选择“SQL Native Client”。<br />
②填入数据库基本资料，因为是本地数据库，所以填写(local)<br />
<img style="margin: 0px; padding: 0px; border: 0px; list-style: none;" title="php连接mssql(mssql_connect &lt;wbr&gt;和odbc方式)" src="http://s10.sinaimg.cn/middle/4ab64d13x8465de4a9129&amp;690" alt="php连接mssql(mssql_connect &lt;wbr&gt;和odbc方式)" width="500" height="325" name="image_operate_47681271472990160" /></p>
<p>几天一直都为<span lang="EN-US" xml:lang="EN-US">php</span>连接<span lang="EN-US" xml:lang="EN-US">mssql</span>的事而烦恼，因为试做很多种不同的方法都不行，原因一直都未明确。不过，今日</p>
<p>我的<span lang="EN-US" xml:lang="EN-US">php</span>终于可以连接到<span lang="EN-US" xml:lang="EN-US">mssql</span>了。所以我接下来，写写这几天我所得的经验。</p>
<p><span lang="EN-US" xml:lang="EN-US">1.</span>首先，版本的问题。</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 我本人现在使用的是<span lang="EN-US" xml:lang="EN-US">wamp1.7</span>，<span lang="EN-US" xml:lang="EN-US">php</span>版本<span lang="EN-US" xml:lang="EN-US">5.0.*</span> ，不过，不是所有的<span lang="EN-US" xml:lang="EN-US">wamp</span>版本都支持</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> mssql</span>的，我之前使用的是<span lang="EN-US" xml:lang="EN-US">wamp2.1</span>版，<span lang="EN-US" xml:lang="EN-US">php</span>的版本是</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> 5.3.*</span>的，由于<span lang="EN-US" xml:lang="EN-US">php</span>的发展方向是与<span lang="EN-US" xml:lang="EN-US">mysql</span>搭配的，所以到<span lang="EN-US" xml:lang="EN-US">php5.3.*</span>时已经唾弃了<span lang="EN-US" xml:lang="EN-US">mssql</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 的连接功能。所以，我的建议就是重新下载一个<span lang="EN-US" xml:lang="EN-US">php_mssql.dll</span>到<span lang="EN-US" xml:lang="EN-US">ext</span>文件下</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 或者直接使用比较低版本的<span lang="EN-US" xml:lang="EN-US">wamp</span>，对于自己搭建的环境，下一个版本低于5.3.*的php。</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 可能还有个疑问，就是<span lang="EN-US" xml:lang="EN-US">wamp2.1</span>的<span lang="EN-US" xml:lang="EN-US">php</span>扩展那里是不是还有<span lang="EN-US" xml:lang="EN-US">php_mssql</span>选择的吗？但你到<span lang="EN-US" xml:lang="EN-US">ext</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 目录下一看就知道，<span lang="EN-US" xml:lang="EN-US">php_mssql.dll</span>是不存在的，这个是形同虚设的。</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 所以很多时候显示的错误：</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> Fatal error:Call to undefined function mssql_connect() in D://......</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 都是没有<span lang="EN-US" xml:lang="EN-US">php_mssql.dll</span>或者是没配置<span lang="EN-US" xml:lang="EN-US">php_mssql</span>的原因。</p>
<p><span lang="EN-US" xml:lang="EN-US">2.</span>开始配置<span lang="EN-US" xml:lang="EN-US">php_mssql</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> a</span>、打开<span lang="EN-US" xml:lang="EN-US">php.ini</span>，将<span lang="EN-US" xml:lang="EN-US">;extension=php_mssql.dll</span>前面的<span lang="EN-US" xml:lang="EN-US">;</span>去掉</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> b</span>、还是<span lang="EN-US" xml:lang="EN-US">php.ini</span>，将<span lang="EN-US" xml:lang="EN-US">mssql.secure_connectiond</span>的<span lang="EN-US" xml:lang="EN-US">off</span>改为<span lang="EN-US" xml:lang="EN-US">on</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 这样就是<span lang="EN-US" xml:lang="EN-US">php</span>这方面的简单配置完成了，然后在打开<span lang="EN-US" xml:lang="EN-US">phpinfo</span>测试</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 在<span lang="EN-US" xml:lang="EN-US">www</span>目录下新建一个<span lang="EN-US" xml:lang="EN-US">test.php</span>文件，代码如下：</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> &lt;?php</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> echo phpinfo();</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> ?&gt;</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 再打开<span lang="EN-US" xml:lang="EN-US">localhost/test.php.</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 如果开启了<span lang="EN-US" xml:lang="EN-US">mssql</span>模板，那就算是<span lang="EN-US" xml:lang="EN-US">php</span>这方面的配置成功啦。</p>
<p><span lang="EN-US" xml:lang="EN-US">3.</span>连接<span lang="EN-US" xml:lang="EN-US">mssql</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 还是刚才的<span lang="EN-US" xml:lang="EN-US">test.php</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> &lt;?php</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> //echo phpinfo();</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> $conn = mssql_connect("localhost","sa","root");</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> ?&gt;</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 这时打开<span lang="EN-US" xml:lang="EN-US">lcoalhost/test.php,</span>页面会报错，如下：</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> Warning: mssql_connect()[function:mssql_connect]:Uable to connect to server:localhost</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> in D:\............</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 这个时候我们的<span lang="EN-US" xml:lang="EN-US">php</span>，<span lang="EN-US" xml:lang="EN-US">Apache</span>已经可以连接到<span lang="EN-US" xml:lang="EN-US">sql server</span>了，下面是对<span lang="EN-US" xml:lang="EN-US">sql server</span>的配置</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /></span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 右键单机“我的电脑”<span lang="EN-US" xml:lang="EN-US">-&gt;</span>“管理”<span lang="EN-US" xml:lang="EN-US">-&gt;"</span>服务和应用程序<span lang="EN-US" xml:lang="EN-US">"-&gt;"SQL Server 2005</span>网咯配置<span lang="EN-US" xml:lang="EN-US">"</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> -&gt;"MSSQLSERVER</span>的协议<span lang="EN-US" xml:lang="EN-US">"-&gt;"TCP/IP"-&gt;</span>右键“启动”，然后重启所有服务器。</p>
<p>这步是很多初学者刚用<span lang="EN-US" xml:lang="EN-US">SQL server</span>时忽略的一步<span lang="EN-US" xml:lang="EN-US">,</span>这步都是许多网上关于<span lang="EN-US" xml:lang="EN-US">php</span>连接<span lang="EN-US" xml:lang="EN-US">mssql</span>的文章中都是没有的<span lang="EN-US" xml:lang="EN-US">.</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 接下来，刷新页面，如果没 <span lang="EN-US" xml:lang="EN-US">Warming</span>：<span lang="EN-US" xml:lang="EN-US">Warning: mssql_connect()[function:mssql_connect]:Uable to connect to server:localhost</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 那就成功了。</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 很多新手包括我之前都有这样的疑问：如果我的<span lang="EN-US" xml:lang="EN-US">SQL server</span>是<span lang="EN-US" xml:lang="EN-US">window</span>身份验证的，那我的服务器、账号和密码写什么？</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> 1.</span>先讲服务器名称：这个是可以多种的。比如：我的就是<span lang="EN-US" xml:lang="EN-US">PC--20101211CQF</span>，这是装电脑时就命名的，从来没改过。</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> a.</span>就是你服务器的名称，如果不知道的可以运行<span lang="EN-US" xml:lang="EN-US">SQL server management studio</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 在连接的对话框中你会看到服务器名称的。</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> b.ip</span>地址。如果是本机的话就<span lang="EN-US" xml:lang="EN-US">127.0.0.1</span>或者<span lang="EN-US" xml:lang="EN-US">localhost</span>，不是本机就写装了<span lang="EN-US" xml:lang="EN-US">SQL server</span>机子的<span lang="EN-US" xml:lang="EN-US">ip</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 当然<span lang="EN-US" xml:lang="EN-US">ipv6</span>的地址都可以。</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> 2.</span>账号和密码：</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> a.</span>如果是<span lang="EN-US" xml:lang="EN-US">window</span>身份验证的，就直接为空 比如：<span lang="EN-US" xml:lang="EN-US">$conn = mssql_connect("lcoalhost","","")</span>。</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> b.</span>如果是有账号的就，<span lang="EN-US" xml:lang="EN-US">$conn = mssql_connect("localhost","</span>账号<span lang="EN-US" xml:lang="EN-US">","</span>密码<span lang="EN-US" xml:lang="EN-US">")</span>。<span lang="EN-US" xml:lang="EN-US">sa</span>是管理员账号，相当于<span lang="EN-US" xml:lang="EN-US">mysql</span>的<span lang="EN-US" xml:lang="EN-US">root</span></p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 开始时<span lang="EN-US" xml:lang="EN-US">SQL server</span>时不能<span lang="EN-US" xml:lang="EN-US">sa</span>登录的，需要设置登录密码才能生效，登录，至于这个就留个读者百度了。</p>
<p><span lang="EN-US" xml:lang="EN-US"> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /> <wbr /></span> 如果有什么疑问可以留言</p>
<p>注:用PHP操作MSSQL比在ASP连接MYSQL要简单,所以,当需要MSSQL与MYSQL并存时,用PHP连接MSSQL来操作MYSQL与MSSQL并存比较简单好用.如果是ASP连接MYSQL,需要安装一个MYSQL驱动,默认windows的ODBC没有安装,很遗憾... <br data-filtered="filtered" />1.在web服务器上至少安装了mssql的客户端 <br data-filtered="filtered" />2.打开php.ini把;extension=php_mssql.dll前面的分号去掉 <br data-filtered="filtered" />有必要话：需要制定extension_dir <br data-filtered="filtered" />3.推荐使用php&lt;=4.0.9&lt;=5.0.3目前我还没有连接成功过4.010和5.0.3 <br data-filtered="filtered" />4.数据库的连接分页可以到phpe.net上获取到相应的class <br data-filtered="filtered" />下面是我根据那里修改的一个class</p>
<p>在研究ezSQL的时候就看到了mssql_connect()等一些php提供的连接MSSQL的函数，本以为php这个开源的风靡世界的编程语言对连接微软的数据应该是不在话下的，但是到真正执行的时候，才发现困难多多。</p>
<p>一开始我下载的php版本是5.93的，下载下来添加环境变量等等搞了半天后，phpinfo（）这个函数终于成功的运行在浏览器中了。然后当我在满世界的找php_mssql.dll,才发现在5.3以及以上版本的php中已经不是原生态的支持mssql了。<br data-filtered="filtered" /><span id="more-1715" data-filtered="filtered"></span></p>
<p>好不容易找到了微软Microsoft Drivers 3.0 for PHP for SQL Server，心想微软的东西应该做的可以，却无奈的发现SQLSRV30.EXE没有办法运行：“SQLSRV30.EXE 不是有效的win32程序”。</p>
<p>在网上搜索了半天，总结了以下一些可行的办法，但是在这之前你需要：</p>
<p><strong>配置MICROSOFT SQL SERVER</strong></p>
<p>1、下载并安装sql server。现在这个版本就比较多了从2000 到2008不等，找一个你自己下载吧。</p>
<p>2、开放tcp/ip连接方式，使得数据库能够远程访问。SQL Server Configuration Manager -&gt; Network Configuration -&gt; Protocols -&gt; TCP/IP enabled</p>
<p>3、打开数据管理界面，添加用户和数据库。</p>
<p>4、安装php和配置IIS服务。</p>
<p>5、打开php所在文件夹里面的 php.ini文件，并添加：<br data-filtered="filtered" />mssql.textlimit = 20971520<br data-filtered="filtered" />mssql.textsize = 20971520</p>
<p>做完了这些之后，你可以按照下面三种方法来连接数据库了：</p>
<p><strong>使用php自带的方法连接MSSQL（5.3及以后版本不适用）</strong></p>
<p>确保php ext扩展库文件夹下有php_mssql.dll，然后在PHP.ini中的配置中,将</p>
<p>;extension=php_mssql.dll</p>
<p>前面的“;”去掉。</p>
<p>然后你可以测试连接了：</p>
<table>
<tbody>
<tr>
<td class="number"><code>1</code></td>
<td class="content"><code class="comments">//连接MSSQL</code></td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<td class="number"><code>2</code></td>
<td class="content"><code class="variable">$conn</code><code class="plain">=mssql_connect(</code><code class="string">"实例名或者服务器IP"</code><code class="plain">,</code><code class="string">"用户名"</code><code class="plain">,</code><code class="string">"密码"</code><code class="plain">);</code></td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<td class="number"><code>3</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<td class="number"><code>4</code></td>
<td class="content"><code class="comments">//测试连接</code></td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<td class="number"><code>5</code></td>
<td class="content"><code class="keyword">if</code><code class="plain">(</code><code class="variable">$conn</code><code class="plain">)</code></td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<td class="number"><code>6</code></td>
<td class="content"><code class="plain">{</code></td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<td class="number"><code>7</code></td>
<td class="content"><code class="spaces">    </code><code class="functions">echo</code> <code class="string">"连接成功"</code><code class="plain">;</code></td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<td class="number"><code>8</code></td>
<td class="content"><code class="plain">}</code></td>
</tr>
</tbody>
</table>
<p><strong>Microsoft Drivers for SQL Server for PHP</strong></p>
<p>2008年7月微软发布了一个新的为php连接SQL Server的驱动，它改善了php自带的连接MSSQL函数的一些缺点，并且是以php扩展插件的形式开发的，通过它你可以用php轻松的读写微软的数据库了。</p>
<p>如果你服务器使用的是IIS的话，那么就一定要从这里去下载：</p>
<p>http://php.iis.net/</p>
<p>因为从上述链接进去其实是微软整合的网络开发平台，只提供在线安装，但是很方便的整合了PDO插件和php，当然还有微软的其它一些开发功能，但是如果你没需要，你可以不装了，那些是在visual studio中的。</p>
<p>但是如果你用的是 Apache的话，你可以去这里直接下载这个插件了，它其实是一个解压文件，解压出来几个DLL文件，具体操作如下：</p>
<p>1）下载驱动包：http://www.microsoft.com/en-us/download/details.aspx?id=20098.</p>
<p>2）将DLL文件解压到 PHP extension_dir 目录，如果出现说SQLSRV30.EXE 不是有效的win32程序，可能是缺少某些库，可能是vc10，也有可能是没有用administrator权限运行。</p>
<p>extension_dir = “C:/PHP/ext”</p>
<p align="center"><img class="aligncenter size-full wp-image-1716" title="sqlsrv3" src="http://www.th7.cn/d/file/p/2013/03/17/7a122bbc0e75040a56b9efcb5c5219e4.jpg" alt="sqlsrv3" width="304" height="155" /></p>
<p>3）在php.ini配置文件内引用相应的动态链接库文件</p>
<p>extension=php_sqlsrv_52_ts_vc6.dll</p>
<p>extension=php_pdo_sqlsrv_52_ts_vc6.dll</p>
<p>extension=php_pdo.dll</p>
<p>其中的52、53表示就是php的5.2.x和5.3.x 版本，选择跟你php版本相匹配的；</p>
<p>选择vc6或vc9的主要看你使用的是什么web服务器软件，如果使用的是IIS那就选择vc9的，如果是Apache则选择vc6的。</p>
<p>至于ts和nts,就要看你安装的php版本是线程安全版的还是非线程安全版，ts是线程安全，nts是非线程安全。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.583idc.com/news/?feed=rss2&#038;p=1652</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
