<p>数据库查询不外乎4个步骤,1、建立连接。2、输入查询代码。3、建立查询并取出数据。4、关闭连接。</p> <p>php连接mssql数据库有几个注意事项,尤其mssql的多个版本、32位、64位都有区别。</p> <p>首先,php.ini文件中;extension=php_pdo_mssql.dll ;extension=php_pdo_odbc.dll 前面的分号去掉,对应的使哪种方式连接mssql。注意要重启服务使其生效。</p> <p>一、建立连接</p> <p>1、odbc</p> <p>首先,在php程序所在的服务器设置odbc。这里32位和64位操作系统有区别。32位的从控制面板中管理工具中的数据源(odbc)直接建立就可以了,64位的要运行C:\Windows\SysWOW64\odbcad32.exe</p> <p>从这里面设置。<font color="#ff0000">注意:上面只的是数据库服务器为32为的,数据源设置服务器为32位和64位两种的情况。只要两个服务器建立的数据源位数一致就好。</font></p> <p><font color="#000000">下面是odbc建立连接代码。</font></p> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 5px; background-color: #f5f5f5; padding-left: 5px; padding-right: 5px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 5px" class="cnblogs_code"> <pre><span style="color: #800080">$con </span>= <span style="color: #008080">odbc_connect</span>('odbc名称','用户名','密码');</pre> </div>
<p>2、连接mssql2000</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 5px; background-color: #f5f5f5; padding-left: 5px; padding-right: 5px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 5px" class="cnblogs_code"> <pre><span style="color: #800080">$con</span> = mssql_connect('<span style="color: #800080">数据库地址</span>','用户名','密码');</pre> </div>
<p>3、连接mssql2008</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 5px; background-color: #f5f5f5; padding-left: 5px; padding-right: 5px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 5px" class="cnblogs_code"> <pre><span style="color: #800080">$connectionInfo</span> = <span style="color: #0000ff">array</span>("UID"=><span style="color: #800080">用户名</span>,"PWD"=><span style="color: #800080">密码</span>,"Database"=>"数据库名称"<span style="color: #000000">); </span><span style="color: #800080">$con</span> = sqlsrv_connect( <span style="color: #800080">数据库地址</span>,<span style="color: #800080">$connectionInfo</span>);</pre> </div>
<p> </p>
<p>二、输入查询代码</p>
<p>这个都一样,可以直接写入,也可以从mssql中验证好后复制过来。简单点说就是把一个sql语句赋值给一个变量。</p>
<p>类似下面代码</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 5px; background-color: #f5f5f5; padding-left: 5px; padding-right: 5px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 5px" class="cnblogs_code"> <pre><span style="color: #800080">$query</span> = "SELECT top 12 * 数据库名称 order by id desc";</pre> </div>
<p> </p>
<p>三、建立查询并取出数据</p>
<p>1、odbc</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 5px; background-color: #f5f5f5; padding-left: 5px; padding-right: 5px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 5px" class="cnblogs_code"> <pre><span style="color: #800080">$result</span> = <span style="color: #008080">odbc_do</span>(<span style="color: #800080">$con</span>,<span style="color: #800080">$query</span><span style="color: #000000">); </span><span style="color: #0000ff">while</span>(<span style="color: #008080">odbc_fetch_row</span>(<span style="color: #800080">$result</span><span style="color: #000000">)) { </span><span style="color: #800080">$变量名称</span> = <span style="color: #008080">odbc_result</span>(<span style="color: #800080">$result</span>, "字段名称")<span style="color: #000000">; }</span></pre> </div>
<p>2、连接mssql2000</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 5px; background-color: #f5f5f5; padding-left: 5px; padding-right: 5px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 5px" class="cnblogs_code"> <pre><span style="color: #800080">$result</span> = mssql_query(<span style="color: #800080">$con</span>, <span style="color: #800080">$query</span><span style="color: #000000">); </span><span style="color: #0000ff">while</span>(<span style="color: #800080">$row</span> =mssql_fetch_array(<span style="color: #800080">$result</span><span style="color: #000000">)) { </span><span style="color: #800080">$变量名称</span> = <span style="color: #800080">$row</span>["字段名称"<span style="color: #000000">]; }</span></pre> </div>
<p>3、连接mssql2008</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 5px; background-color: #f5f5f5; padding-left: 5px; padding-right: 5px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 5px" class="cnblogs_code"> <pre><span style="color: #800080">$result</span> = sqlsrv_query(<span style="color: #800080">$con</span>, <span style="color: #800080">$query</span><span style="color: #000000">); </span><span style="color: #0000ff">while</span>(<span style="color: #800080">$row</span> = sqlsrv_fetch_array(<span style="color: #800080">$result</span><span style="color: #000000">)) { </span><span style="color: #800080">$变量名称 </span>= <span style="color: #800080">$row</span>["字段名称"<span style="color: #000000">]; }</span></pre> </div>
<p>在php5.3及以后的版本中不附带sqlsrv库了。所以要从<a href="http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx">微软这里</a>下载。</p>
<p>四、关闭连接</p>
<p>这个没有什么区别,分别是odbc_close();和mssql_close()和sqlsrv_close();</p>
<p>最后体会:php连接mssql比连接mssql的函数少了一些,但是也够用了。具体函数可以参考<a href="http://www.php.net/mssql">php官方手册</a>或者<a href="http://www.ostools.net/apidocs/apidoc?api=php-zh">oschina的php中文文档</a>。</p>
来源:oschina
链接:https://my.oschina.net/u/157262/blog/109586