検索
ホームページphp教程php手册php连接mssql两种方法(com & pdo)

使用COM 1、首先是准备工作: 在Windows下通过PHP访问MSSQL SERVER 2000,可以有两种方式, (1)利用COM (2)一种是使用MSSQL_系列函数 要使用这两种都需要在php.ini进行设定: (1)允许 DCOM,需要将php.ini中的 ;com.allow_dcom=TRUE前的分号";"去掉。 (2)使用

 使用COM
1、首先是准备工作:
在Windows下通过PHP访问MSSQL SERVER 2000,可以有两种方式,
(1)利用COM
(2)一种是使用MSSQL_系列函数 
要使用这两种都需要在php.ini进行设定:
(1)允许 DCOM,需要将php.ini中的 ;com.allow_dcom=TRUE前的分号";"去掉。
(2)使用MSSQL扩展,需要php.ini中的 ;extension=php_mssql.dll前的分号";"去掉。
(3)确认extension_dir为正确路径,以本机为例:extension_dir = "c:/AppServ/php5/ext"。 
(4)如果仍然机器报错说找不到c:/AppServ/php5/ext/php_mssql.dll但明明存在这个文件。
       解决方法:将php_mssql.dll,ntwdblib.dll拷贝到系统目录/system32下重启测试。。
       (注:上面两个dll文件不在相同目录下,我的为c:/AppServ/php5/ext/php_mssql.dll;c:/AppServ/php5/ntwdblib.dll)
另外设置好了后记得重启服务器哦。
我的PHP环境是用AppServ搭建的,我这样做了后,访问MSSQL SERVER一切正常。若你仍然有问题,请查阅PHP手册php.ini的设置。
2、利用COM访问MSSQL SERVER的简单方法
   $conn = new COM("ADODB.Connection") or die("Cannot start ADO");
   //首先声明一个连接对象
   $connstr = "Provider=SQLOLEDB;
               Persist Security Info=False;
               User ID=youruid;
               Password=yourpwd;
               Initial Catalog=yourdatabase;
               Data Source=127.0.0.1";
   //设置连接字符串(很奇怪Data Soure为localhost或服务器名不行总是报错而为(local)或127.0.0.1却行,希望哪个高手帮我说明一下)
   $conn->Open($connstr); //建立数据库连接
   $sqlstr = "select * from test"; //设置查询字符串
   $rs = $conn->Execute($sqlstr); //执行查询获得结果
   或者
      //$rs = new com("adodb.recordset");       //声明一个数据集对象
      //$rs->open($sqlstr,$conn);//,3,3);          //获得数据集rcordset内容

   $num_cols = $rs->Fields->Count();   //得到数据集列数 
   while (!$rs->EOF)       //输出结果
   {
      echo $rs->Fields['name']->Value."
"; // 'name'为字段名,需要明确制定
      $rs->MoveNext();
      或者
      //for ($i=0; $i       //{
               //echo $fld[$i]->value . "/t";
      //}
      //echo "/n";
               //$rs->MoveNext();
   }
   $rs->Close();   
   $conn->Close();
   $rs = null;
   $conn = null;
3、使用MSSQL_函数访问MSSQL SERVER的简单方法
   $hostname = "yourhoustname";
   $username = "yourusername";
   $password = "yourpassword"; 
   $conn = mssql_connect($hostname,$username,$password) or die("DATABASE FAILED TO RESPOND.");
   //建立连接
   $dbName = "yourdatabase";
   $ret=mssql_select_db($dbName); //选择数据库 
   $sqlstr = "select * from test"; //设置查询字符串
   $result=mssql_query($query); //执行查询获得结果
 
   while($line = mssql_fetch_row($result))   //输出结果
   {
      echo "$line[0],$line[1]";
      //mssql_fetch_row每次返回一个enumerated(列举) array,直到没有数据而返回false
   }
   或者
       //while($row = mssql_fetch_array($result))
       //{
       //echo $row["name"];
       或者
       //echo $row[0],$row[1];
       //mssql_fetch_array每次返回一个数字索引数组或一个相关数组,直到没有数据而返回false
       //}

题外:
   关于通过PHP访问MSSQL SERVER的小结就是这些了。希望能对你有所帮助,第一次写又是初学,请你指出,共同进步。
求助:
   1、我在设置连接字符串的时候,为什么Data Soure为localhost或服务器名不行总是报错而为(local)或127.0.0.1却行,希望哪个高手帮我说明一下
   2、我在设置查询字符串的时候,如何对"LIKE '%-'"(单引号内为一个百分号和一个短横线)进行转义

 


使用pdo
1、首先仍然是准备工作:

   (1)使用PDO扩展,需要将php.ini中的 ;extension=php_pdo.dll前的分号";"去掉。
   (2)访问MSSQL,需要将php.ini中的 ;extension=php_pdo_mssql.dll前的";"去掉(没有则添加)。
         补充:如果你需要访问MySQL,需要将php.ini中的 ;extension=php_pdo_mssql.dll前的";"去掉。
                   其他数据库请去掉相应扩展前的";"。
   (3)确认extension_dir为正确路径,以本机为例:extension_dir = "c:/AppServ/php5/ext"。 
   (4)如果仍然机器报错说找不到c:/AppServ/php5/ext/php_mssql.dll但明明存在这个文件。
       解决方法:将php_mssql.dll,ntwdblib.dll拷贝到系统目录/system32下重启测试。。
       (注:上面两个dll文件不在相同目录下,我的为c:/AppServ/php5/ext/php_mssql.dll;c:/AppServ/php5/ntwdblib.dll)
       另外:设置完毕后仍然记得要重启服务器哦

2、使用PDO访问MSSQL SERVER的简单方法
$username = yourusername;
$pwd = yourpassword;
try

   //??host=127.0.0.1可用;(local)不可用;localhost不可用;MAXY不可用
   $dbh = new PDO('mssql:host=127.0.0.1;dbname=yourdatabase',$username,$pwd);
   //声明一个PDO对象并指定它的连接字符串
   $sqlstri = "select * from UpLow";
   //指定查询字符串
   foreach ($dbh->query($sqlstri) as $row)
   //执行查询获得结果,并输出
   {
print_r($row);
或者
//echo $row['name'];
   //指定字段输出
   }
}
catch (PDOException $e)
{
   print "Error!;".$e->getMessage()."
";
}

 

http://blog.csdn.net/fkedwgwy/archive/2008/12/09/3484757.aspx

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。