版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
php连接mssql两种方法(com&pdo)分类:MSSQL类php2009-11-1311:311309人阅读评论(0)\o"收藏"收藏\o"举报"举报phpextension服务器数据库扩展query使用COM1、首先是准备工作:
在Windows下通过PHP访问MSSQLSERVER2000,可以有两种方式,
(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搭建的,我这样做了后,访问MSSQLSERVER一切正常。若你仍然有问题,请查阅PHP手册php.ini的设置。
2、利用COM访问MSSQLSERVER的简单方法
$conn=newCOM("ADODB.Connection")ordie("CannotstartADO");
//首先声明一个连接对象
$connstr="Provider=SQLOLEDB;
PersistSecurityInfo=False;
UserID=youruid;
Password=yourpwd;
InitialCatalog=yourdatabase;
DataSource=";
//设置连接字符串(很奇怪DataSoure为localhost或服务器名不行总是报错而为(local)或却行,希望哪个高手帮我说明一下)
$conn->Open($connstr);//建立数据库连接
$sqlstr="select*fromtest";//设置查询字符串
$rs=$conn->Execute($sqlstr);//执行查询获得结果
或者
//$rs=newcom("adodb.recordset");
//声明一个数据集对象
//$rs->open($sqlstr,$conn);//,3,3);
//获得数据集rcordset内容
$num_cols=$rs->Fields->Count();
//得到数据集列数
while(!$rs->EOF)
//输出结果
{
echo$rs->Fields['name']->Value."<BR>";//'name'为字段名,需要明确制定
$rs->MoveNext();
或者
//for($i=0;$i<$num_columns;$i++)
//{
//echo$fld[$i]->value."/t";
//}
//echo"/n";
//$rs->MoveNext();
}
$rs->Close();
$conn->Close();
$rs=null;
$conn=null;
3、使用MSSQL_函数访问MSSQLSERVER的简单方法
$hostname="yourhoustname";
$username="yourusername";
$password="yourpassword";
$conn=mssql_connect($hostname,$username,$password)ordie("DATABASEFAILEDTORESPOND.");
//建立连接
$dbName="yourdatabase";
$ret=mssql_select_db($dbName);//选择数据库
$sqlstr="select*fromtest";//设置查询字符串
$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访问MSSQLSERVER的小结就是这些了。希望能对你有所帮助,第一次写又是初学,请你指出,共同进步。
求助:
1、我在设置连接字符串的时候,为什么DataSoure为localhost或服务器名不行总是报错而为(local)或却行,希望哪个高手帮我说明一下
2、我在设置查询字符串的时候,如何对"LIKE'%-'"(单引号内为一个百分号和一个短横线)进行转义
使用pdo1、首先仍然是准备工作:
(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访问MSSQLSERVER的简单方法
$username=yourusername;
$pwd=yourpassword;
try
{
//??host=可用;(local)不可用;localhost不可用;MAXY不可用
$dbh=newPDO('mssql:host=;dbname=yourdatabase',$username,$pwd);
//声明一个PDO对象并指定它的连接字符串
$sqlstri="select*fromUpLow";
//指定查询字符串
foreach($dbh->query($sqlstri)as$row)
//执行查询获得结果,并输出
{
print_r($row);
或者
//echo$row['name'];
//指定字段输出
}
}
catch(PDOException$e)
{
print"Error!;".$e->getMessage()."<br>";
}
mysqlexception数据库extensionquery
PDO(PHPDataObject)是PHP5新出来的东西,在PHP6都要出来的时候,PHP6只默认使用PDO来处理数据库,将把所有的数据库扩展移到了PECL,那么默认就是没有了我们喜爱的php_mysql.dll之类的了,那怎么办捏,我们只有与时俱进了,我就小试了一把PDO。(本文只是入门级的,高手可以略过,呵呵)【PDO是啥】PDO是PHP5新加入的一个重大功能,因为在PHP5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等扩展来连接MySQL、PostgreSQL、MSSQLServer、SQLite,同样的,我们必须借助ADOdb、PEAR::DB、PHPlib::DB之类的数据库抽象类来帮助我们,无比烦琐和低效,毕竟,php代码的效率怎么能够我们直接用C/C++写的扩展斜率高捏?所以嘛,PDO的出现是必然的,大家要平静学习的心态去接受使用,也许你会发现能够减少你不少功夫哦。【安装PDO】我是在WindowsXPSP2上面,所以嘛,整个过程都是在Windows行进行的啦,至于Linux/FreeBSD等平台,请自行查找资料设置安装。
我的是PHP5.1.4,已经自带有了php_pdo.dll的扩展,不过需要稍微设置一下才能使用。打开c:/windows/php.ini,那是我的PHP配置文件,找到下面这行:extension_dir这个就是我们扩展存在的目录,我的PHP5扩展是在:C:/php5/ext,那么我就把这行改成:extension_dir="C:/php5/ext"然后再往php.ini下面找到:;;;;;;;;;;;;;;;;;;;;;;
;DynamicExtensions;
;;;;;;;;;;;;;;;;;;;;;;下面有一堆类似;extension=php_mbstring.dll的东西,这里就是PHP扩展加载的配置了,我们再最后面添加上我们PDO的扩展:extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pdo_mssql.dll
extension=php_pdo_odbc.dll
extension=php_pdo_firebird.dll
;extension=php_pdo_oci8.dll各种PDO的驱动,能给加上的全给加上,不过后面的php_pdo_oci8.dll,因为我没有安装Oralce数据库,所以没有这个,就使用分号注释掉它。然后重启我们的Web服务器,IIS/Apache,我的是IIS,嘿嘿,表鄙视我,在Windows上,简单嘛。重启后,在我们Web服务器的文档目录下写一个phpinfo.php的文件,加上这些:<?
phpinfo();
?>然后打开我们可爱的浏览器:IE/FireFox,我的是FireFox2.0,刚下载的,很爽,不怕流氓软件,哈哈。在浏览器里面输入:http://localhost/phpinfo.php,如果你的这个页面路径不一致,请自行输入。输出的内容中,如果你能够顺利的看到:PDO
PDOsupportenabled
PDOdriversmysql,pgsql,sqlite,mssql,odbc,firebird
后面有各种驱动的说明:PDO_Firebird,pdo_mssql,pdo_mysql,PDO_ODBC,pdo_pgsql,pdo_sqlite那么,恭喜你安装成功了,否则请仔细检查上面的步骤。【牛刀小小试】我用的是MySQL4.0.26,但是我个人推荐大家使用MySQL4.1.x或者MySQL5.0.x,因为那些版本有很多有趣的东西值得去学习。我们这里PDO需要连接的就是我的MySQL4.0啦,如果你没有安装MySQL,请自行安装。我们建立好了MySQL,并且在test库里添加了表foo,包括id,name,gender,time等四个字段。我们开始构造第一个PDO应用,建立一个pdo.php文件在Web文档目录下:<?php
$dsn="mysql:host=localhost;dbname=test";
$db=newPDO($dsn,'root','');
$count=$db->exec("INSERTINTOfooSETname='heiyeluren',gender='男',time=NOW()");
echo$count;
$db=null;
?>不明白啥意思,俺们来慢慢讲讲。这行:$dsn="mysql:host=localhost;dbname=test";就是构造我们的DSN(数据源),看看里面的信息包括:数据库类型是mysql,主机地址是localhost,数据库名称是test,就这么几个信息。不同数据库的数据源构造方式是不一样的。$db=newPDO($dsn,'root','');初始化一个PDO对象,构造函数的参数第一个就是我们的数据源,第二个是连接数据库服务器的用户,第三个参数是密码。我们不能保证连接成功,后面我们会讲到异常情况,这里我们姑且认为它是连接成功的。$count=$db->exec("INSERTINTOfooSETname='heiyeluren',gender='男',time=NOW()");
echo$count;调用我们连接成功的PDO对象来执行一个查询,这个查询是一个插入一条记录的操作,使用PDO::exec()方法会返回一个影响记录的结果,所以我们输出这个结果。最后还是需要结束对象资源:$db=null;默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:array(PDO::ATTR_PERSISTENT=>true)变成这样:$db=newPDO($dsn,'root','',array(PDO::ATTR_PERSISTENT=>true));一次操作就这么简单,也许跟以前的没有太大区别,跟ADOdb倒是有几分相似。【继续了解】如果我们想提取数据的话,那么就应该使用数据获取功能。(下面用到的$db都是上面已经连接好的对象)<?php
foreach($db->query("SELECT*FROMfoo")){
print_r($row);
}
?>我们也可以使用这种获取方式:<?php
$rs=$db->query("SELECT*FROMfoo");
while($row=$rs->fetch()){
print_r($row);
}
?>如果想一次把数据都获取到数组里可以这样:<?php
$rs=$db->query("SELECT*FROMfoo");
$result_arr=$rs->fetchAll();
print_r($result_arr);
?>Array
([0]=>Array(
[id]=>1
[0]=>1
[name]=>heiyeluren
[1]=>heiyeluren
[gender]=>男
[2]=>男
[time]=>2006-10-2823:14:23
[3]=>2006-10-2823:14:23
)
}我们看里面的记录,数字索引和关联索引都有,浪费资源,我们只需要关联索引的:<?php
$db->setAttribute(PDO::ATTR_CASE,PDO::CASE_UPPER);
$rs=$db->query("SELECT*FROMfoo");
$rs->setFetchMode(PDO::FETCH_ASSOC);
$result_arr=$rs->fetchAll();
print_r($result_arr);
?>看上面的代码,setAttribute()方法是设置部分属性,主要属性有:PDO::ATTR_CASE、PDO::ATTR_ERRMODE等等,我们这里需要设置的是PDO::ATTR_CASE,就是我们使用关联索引获取数据集的时候,关联索引是大写还是小写,有几个选择:PDO::CASE_LOWER--强制列名是小写
PDO::CASE_NATURAL--列名按照原始的方式
PDO::CASE_UPPER--强制列名为大写我们使用setFetchMode方法来设置获取结果集的返回值的类型,同样类型还有:PDO::FETCH_ASSOC--关联数组形式
PDO::FETCH_NUM--数字索引数组形式
PDO::FETCH_BOTH--两者数组形式都有,这是缺省的
PDO::FETCH_OBJ--按照对象的形式,类似于以前的mysql_fetch_object()当然,一般情况下我们是使用PDO::FETCH_ASSOC,具体使用什么,按照你自己的需要,其他获取类型参考手册。除了上面这种获取数据的方式,还有这种:<?php
$rs=$db->prepare("SELECT*FROMfoo");
$rs->execute();
while($row=$rs->fetch()){
print_r($row);
}
?>其实差不多啦。如果你想获取指定记录里一个字段结果的话,可以使用PDOStatement::fetchColumn():<?php
$rs=$db->query("SELECTCOUNT(*)FROMfoo");
$col=$rs->fetchColumn();
echo$col;
?>一般使用fetchColumn()来进行count统计或者某些只需要单字段的记录很好操作。简单的总结一下上面的操作:查询操作主要是PDO::query()、PDO::exec()、PDO::prepare()。PDO::query()主要是用于有记录结果返回的操作,特别是SELECT操作,PDO::exec()主要是针对没有结果集合返回的操作,比如INSERT、UPDATE、DELETE等操作,它返回的结果是当前操作影响的列数。PDO::prepare()主要是预处理操作,需要通过$rs->execute()来执行预处理里面的SQL语句,这个方法可以绑定参数,功能比较强大,不是本文能够简单说明白的,大家可以参考手册和其他文档。获取结果集操作主要是:PDOStatement::fetchColumn()、PDOStatement::fetch()、PDOStatement::fetchALL()。PDOStatement::fetchColumn()是获取结果指定第一条记录的某个字段,缺省是第一个字段。PDOStatement::fetch()是用来获取一条记录,PDOStatement::fetchAll()是获取所有记录集到一个中,获取结果可以通过PDOStatement::setFetchMode来设置需要结果集合的类型。另外有两个周边的操作,一个是PDO::lastInsertId()和PDOStatement::rowCount()。PDO::lastInsertId()是返回上次插入操作,主键列类型是自增的最后的自增ID。PDOStatement::rowCount()主要是用于PDO::query()和PDO::prepare()进行DELETE、INSERT、UPDATE操作影响的结果集,对PDO::exec()方法和SELECT操作无效。【错误处理】如果程序中碰到错误咋办?我们这里描述PDO类的错误信息和异常处理。1.面向对象的方式先看看如果连接错误等的处理,使用面向对象的方式来处理:<?php
try{
$db=newPDO('mysql:host=localhost;dbname=test',$user,$pass);
$db=null;
}catch(PDOException$e){
print"Error:".$e->getMessage()."<br/>";
die();
}
?>这里利用我们PHP5面向对象的异常处理特征,如果里面有异常的话就初始化调用PDOException来初始化一个异常类。PDOException异常类的属性结构:<?php
classPDOExceptionextendsException
{
public$errorInfo=null;//错误信息,可以调用PDO::errorInfo()或PDOStatement::errorInfo()来访问
protected$message;//异常信息,可以试用Exception::getMessage()来访问
protected$code;//SQL状态错误代码,可以使用Exception::getCode()来访问
}
?>这个异常处理类是集成PHP5内置的异常处理类,我们简单的看一下PHP5内置的异常处理类结构:<?php
classException
{
//属性
protected$message='Unknownexception';//异常信息
protected$code=0;//用户自定义异常代码
protected$file;//发生异常的文件名
protected$line;//发生异常的代码行号//方法
finalfunctiongetMessage();//返回异常信息
finalfunctiongetCode();//返回异常代码
finalfunctiongetFile();//返回发生异常的文件名
finalfunctiongetLine();//返回发生异常的代码行号
finalfunctiongetTrace();//backtrace()数组
finalfunctiongetTraceAsString();//已格成化成字符串的getTrace()信息
}
?>相应的,在代码中可以合适的调用getFile()和getLine()来进行错误定位,更方便的进行调试。2.使用面向过程的方法先看代码:<?
$db=newPDO('mysql:host=localhost;dbname=test',$user,$pass);
$rs=$db->query("SELECTaa,bb,ccFROMfoo");
if($db->errorCode()!='00000'){
print_r($db->errorInfo());
exit;
}
$arr=$rs->fetchAll();
print_r($arr);
$db=null;
?>PDO和PDOStatement对象有errorCode()和errorInfo()方法,如果没有任何错误,errorCode()返回的是:00000,否则就会返回一些错误代码。errorInfo()返回的一个数组,包括PHP定义的错误代码和MySQL的错误代码和错误信息,数组结构如下:Array
(
[0]=>42S22
[1]=>1054
[2]=>Unknowncolumn'aaa'in'fieldlist'
)每次执行查询以后,errorCode()的结果都是最新的,所以我们可以很容易自己控制错误信息显示。【简单总结】从上面的使用看出,PDO功能确实强大,另外还有一些内容我没有讲到,比如绑定参数、预处理、存储过程、事务处理等等功能。另外还有不同数据扩DSN的构造,Oracle数据库自己很多特殊的东西,都需要深入去学习理解,这篇文章就只是简单的描述了一些入门知识,算是对PDO一个简单的了解吧。<?php
$mysql_server_name='localhost';
$mysql_username='root';
$mysql_password='12345678';
$mysql_database='mycounter';
$conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_database);
$sql='CREATEDATABASEmycounterDEFAULTCHARACTERSETgbkCOLLATEgbk_chinese_ci;
';
mysql_query($sql);
$sql='CREATETABLE`counter`(`id`INT(255)UNSIGNEDNOTNULLAUTO_INCREMENT,`count`INT(255)UNSIGNEDNOTNULLDEFAULT0,PRIMARYKEY(`id`))TYPE=innodb;';
mysql_select_db($mysql_database,$conn);
$result=mysql_query($sql);
//echo$sql;
mysql_close($conn);
echo"Hello!数据库mycounter已经成功建立!";
?>php使用adodb连接mssql数据库代码2010-09-1315:27:19
我来说两句
收藏
我要投稿php使用adodb连接mssql数据库代码
include_once(adodb5/adodb.inc.php);
$conn=adonewconnection(odbc_mssql);
$conn->pconnect("driver={sqlserver};server=dlut-pcsqlexpress;database=yuyan;",zhouhao,950288);
$adodb_fetch_mode=adodb_fetch_assoc;
$sqlstr=select*fromyuyanwhereps教程nno=?;
$rst=$conn->execute($sqlstr,005)ordie(connecterror);
while(!$rst->eof)
{
//echo$rst->fields[ps教程nname].->.$rst->fields[psnno].;
echodajiahao;
$rst->movenext();
}
$rst->close();
$conn->close();几种常用PHP连接数据库的代码示例2009-12-0313:34佚名百度博客字号:T|T我们今天为大家介绍的PHP连接数据库的方法包括在MYSQL数据库,ACCESS数据库,MSSQL数据库和Oracle数据库中实现。AD:2014WOT全球软件技术峰会北京站课程视频发布PHP语言经常被程序员用来开发网站,在实际操作中肯定会与数据库打上交道。今天我们就为大家介绍有关PHP连接数据库的各种方法,希望对大家有用。解读PHP函数strrev()以外的三种逆序排列PHP自定义异常处理器的几种使用方法如何正确实现PHP网站优化教你如何正确安装phpDocumentor如何正确配置PHP开发环境PHP连接数据库之PHP连接MYSQL数据库代码<
?php
$mysql_server_name='localhost';
//改成自己的mysql数据库服务器
$mysql_username='root';
//改成自己的mysql数据库用户名
$mysql_password='12345678';
//改成自己的mysql数据库密码
$mysql_database='mycounter';
//改成自己的mysql数据库名
$conn=mysql_connect($mysql_server_name,
$mysql_username,$mysql_password,
$mysql_database);
$sql='CREATE
DATABASE
mycounter
DEFAULT
CHARACTER
SET
gbk
COLLATE
gbk_chinese_ci;
';
mysql_query($sql);
$sql='CREATE
TABLE
`counter`
(`id`
INT(255)
UNSIGNED
NOT
NULL
AUTO_INCREMENT
,`count`
INT(255)
UNSIGNED
NOT
NULL
DEFAULT
0,PRIMARY
KEY
(
`id`
)
)
TYPE
=
innodb;';
mysql_select_db($mysql_database,$conn);
$result=mysql_query($sql);
//echo
$sql;
mysql_close($conn);
echo
"Hello!数据库mycounter已经成功建立!";
?>
PHP连接数据库之PHP连接ACCESS数据库代码方法<
?
$conn
=
new
com("ADODB.Connection");
$connstr
=
"DRIVER={Microsoft
Access
Driver
(*.mdb)};
DBQ=".
realpath("data/db.mdb");
$conn->Open($connstr);
$rs
=
new
com("ADODB.RecordSet");
$rs->Open("select
*
from
szd_t",$conn,1,1);
while(!
$rs->eof)
{
$f
=
$rs->Fields(1);
echo
$f->value;
$rs->MoveNext();
}
?>
PHP连接数据库之PHP连接MSSQL数据库代码方法1.安装SQL服务器并添加PHP的MSSQL扩展2.使用以下代码连接并测试<
?php
$myServer
=
localhost;
//主机
$myUser
=
sa;
//用户名
$myPass
=
password;
//密码
$myDB
=
Northwind;
//MSSQL库名
$s
=
@mssql_connect($myServer,
$myUser,
$myPass)
or
die(Couldnt
connect
to
SQL
Server
on
$myServer);
$d
=
@mssql_select_db($myDB,
$s)
or
die(Couldnt
open
database
$myDB);
$query
=
SELECT
TitleOfCourtesy
+
+FirstName+
+LastName
AS
Employee
;
$query
.=
FROM
Employees
;
$query
.=
WHERE
Country=USA
AND
Left(HomePhone,
5)
=
(206);
$result
=
mssql_query($query);
$numRows
=
mssql_num_rows($result);
echo
<h1>
.
$numRows
.
Row
.
($numRows
==
1
?
:
s)
.
Returned
</h1>;
while($row
=
mssql_fetch_array($result))
{
echo
<li>
.
$row[Employee]
.
</li>;
}
?>
PHP连接数据库之PHP连接Oracle数据库PHP提供了两套函数与Oracle连接,分别是ORA_和OCI函数。其中ORA_函数略显陈旧。OCI函数更新据说更好一些。两者的使用语法几乎相差无几。你的PHP安装选项应该可以支持两者的使用。<?
if
($conn=Ora_Logon
("user@TNSNAME","password"))
{
echo
"SUCCESS
!
Connected
to
database\n";
}else
{echo
"Failed
:-(
Could
not
connect
to
database\n";}
Ora_Logoff($conn);
phpinfo();
?>
以上PHP连接数据库的代码使用TNSNAME(在你的tnsnames.ora文件中指明)定义的Oracle数据库名称、用户名称和密码连接数据库。在成功连接的基础上,ora_logon函数返回一个非零的连接ID并储存在变量$conn中。注意要重启服务使其生效。一、建立连接1、odbc首先,在php程序所在的服务器设置odbc。这里32位和64位操作系统有区别。32位的从控制面板中管理工具中的数据源(odbc)直接建立就可以了,64位的要运行C:\Windows\SysWOW64\odbcad32.exe从这里面设置。注意:上面只的是数据库服务器为32为的,数据源设置服务器为32位和64位两种的情况。只要两个服务器建立的数据源位数一致就好。下面是odbc建立连接代码。复制代码代码如下:$con=odbc_connect('odbc名称','用户名','密码');2、连接mssql2000复制代码代码如下:$con=mssql_connect('数据库地址','用户名','密码');3、连接mssql2008复制代码代码如下:$connectionInfo=array("UID"=用户名,"PWD"=密码,"Database"="数据库名称");$con=sqlsrv_connect(数据库地址,$connectionInfo);二、输入查询代码这个都一样,可以直接写入,也可以从mssql中验证好后复制过来。简单点说就是把一个sql语句赋值给一个变量。类似下面代码复制代码代码如下:$query="SELECTtop12*数据库名称orderbyiddesc";三、建立查询并取出数据1、odbc复制代码代码如下:$result=odbc_do($con,$query);while(odbc_fetch_row($result)){$变量名称=odbc_result($result,"字段名称");}2、连接mssql2000复制代码代码如下:$result=mssql_query($con,$query);while($row=mssql_fetch_array($result)){$变量名称=$row["字段名称"];}3、连接mssql2008复制代码代码如下:$result=sqlsrv_query($con,$query);while($row=sqlsrv_fetch_array($result)){$变量名称=$row["字段名称"];}在php5.3及以后的版本中不附带sqlsrv库了。所以要从微软这里下载。四、关闭连接问:我在自己电脑搭建了一个服务器环境,本机已经安装SQLSever2005和PHP服务器,IP地址是自动获取的,我在MSSQL中建了一个student_db的数据库,库中有一个student表,用户名为sa,密码为空
请解答:
问题1:请参照如上信息写出php.ini的配置方法、写出需要安装的东西
问题2:.写出PHP连接MSSQL的代码答:1.安装SQL服务器并添加PHP的MSSQL扩展2.使用以下代码连接并测试<?php$myServer=localhost;//主机$myUser=sa;//用户名$myPass=password;//密码$myDB=Northwind;//MSSQL库名$s=@mssql_connect($myServer,$myUser,$myPass)ordie(CouldntconnecttoSQLServeron$myServer);$d=@mssql_select_db($myDB,$s)ordie(Couldntopendatabase$myDB);$query=SELECTTitleOfCourtesy++FirstName++LastNameASEmployee;$query.=FROMEmployees;$query.=WHERECountry=USAANDLeft(HomePhone,5)=(206);原文地址:/index.php/Ymgx/detail/id/50php使用adodb连接mssql数据库代码2010-09-1315:27:19
我来说两句
收藏
我要投稿php使用adodb连接mssql数据库代码
include_once(adodb5/adodb.inc.php);
$conn=adonewconnection(odbc_mssql);
$conn->pconnect("driver={sqlserver};server=dlut-pcsqlexpress;database=yuyan;",zhouhao,950288);
$adodb_fetch_mode=adodb_fetch_assoc;
$sqlstr=select*fromyuyanwhereps教程nno=?;
$rst=$conn->execute($sqlstr,005)ordie(connecterror);
while(!$rst->eof)
{
//echo$rst->fields[ps教程nname].->.$rst->fields[psnno].;
echodajiahao;
$rst->movenext();
}
$rst->close();
$conn->close();<VirtualHost*:80>#ServerAdminwebmaster@dummy-host.PHP77.COM#DocumentRoot"C:/WWW/APACHE2/docs/dummy-host.PHP77.COM" DocumentRoot"C:/WWW/APACHE2/docs/a_COM" ServerName#ServerNamedummy-host.PHP77.COM#ServerAliaswww.dummy-host.PHP77.COM#ErrorLog"logs/dummy-host.PHP77.COM-error.log"#CustomLog"logs/dummy-host.PHP77.COM-access.log"common</VirtualHost><VirtualHost*:80>#ServerAdminwebmaster@dummy-host2.PHP77.COM#DocumentRoot"C:/WWW/APACHE2/docs/dummy-host2.PHP77.COM" DocumentRoot"C:/WWW/APACHE2/docs/b_COM" ServerName#ServerNamedummy-host2.PHP77.COM#ErrorLog"logs/dummy-host2.PHP77.COM-error.log"#CustomLog"logs/dummy-host2.PHP77.COM-access.log"common</VirtualHost>--apache2.2的httpd配置中需要将PHP设置为可识别的脚本类型。
在httpd.conf中配置
LoadModulephp5_module"c:/php/php5apache2_2.dll"
AddTypeapplication/x-httpd-php.php
AddTypeapplication/x-httpd-php.phtml
PHPIniDir"c:/php"
然后重启apache2.2
http://localhost下载index.html是因为默认目录index使用的index.html
在httpd.conf中修改
DirectoryIndexindex.html变为下面内容
DirectoryIndexindex.phpindex.html问:apache的用途是什么?答:apache是服务器,作用就是接受用户的请求,比如我们登陆某个网站,浏览器就向服务器发送请求,apache接受请求并存取数据,然后返给用户。
php只是一个程序,他接受php脚本进行处理,然后返回数据。返回的数据传给apache服务器。
他们的关系就像经理接受客服的需求,然后安排给公司内部人员处理,内部人员处理好后,将东西交给经理,经理再给用户。apache就是协调各类数据的C:/WWW/APACHE2/htdocs/a_com问:Apache中怎么修改默认站点目录?答:昨天志明尝试更改了Apache的默认网站根目录文件夹,发现居然网页显示不出来。从理论上来说,是可以更改的,由于本人从未有过如此想法,当时就未作过多探索。刚才,在进入文件夹时突然记起这个问题来,就顺便实现了一下,打开Apache的配置文件httpd.conf找到了<DirectoryD:/Apache/htdocs改为<DirectoryE:/htdocs,用phpinfo();测试了一下,发现是网站拒绝访问,由于原来我用IIS的缘故,很自然想到了是文件目录权限不足的问题,可是更改了文件目录权限后,问题丝毫没有得到解决。一、修改Apache的默认站点目录ApacheHTTPServer安装好后,默认的站点目录位于其安装目录下的htdocs文件夹内,默认首页是该文件夹的index.html文件。比如,我的Apache是安装在C:/wamp/bin/apache/Apache2.2.21内,那么我的Apache的完整的默认站点目录地址就是C:/wamp/bin/apache/Apache2.2.21/htdocs/,默认首页就是C:/wamp/bin/apache/Apache2.2.21/htdocs/index.html。很多时候,不管是学习、测试,还是想真正的搭建自己的站点,我们可能并不想把自己的网站放在Apache默认的站点目录下,这时,本节的知识将会帮助你解决这个问题。在httpd.conf找到DocumentRootD:/Apache/htdocs,我把这行改为DocumentRootE:/htdocs即可。修改方法:1、到Apache的安装目录下找到conf文件夹,该文件夹内会httpd.conf这样一个文本文档,它是Apache的配置文件,负责指挥Apache的运行。2、双击打开httpd.conf这个文本文档,按下键盘上的Ctrl+F组合键查找DocumentRoot(带英文双引号,见图),查找出来之后(仅有一处),将字符串DocumentRoot后面双引号内的字符串修改为自己想要设定的网站目录。如:默认为DocumentRootC:/wamp/bin/apache/Apache2.2.21/htdocs,现修改成DocumentRootD:/Apache3、完成上述第2步之后,暂不要关闭httpd.conf文件,继续查找,查找<Directory(带英文双引号,见图3),查找到<Directory之后,将第一个Directory字符串后面双引号内的字符串修改为自己想要设定的网站目录。如:默认为<DirectoryC:/wamp/bin/apache/Apache2.2.21/htdocs,现修改成<DirectoryD:/Apache4、同时按下键盘上的Ctrl+S组合键保存上述修改,一定记得要停止(STOP)一次Apache服务然后再启动(START),使刚刚的修改生效。综上所述,更改Apache默认网站根目录只需更改以下两个地方即可!1.找到DocumentRootD:/Apache/htdocs将D:/Apache/htdocs改为你自定义的网站目录;2.找到<DirectoryD:/Apache/htdocs将D:/Apache/htdocs改为你自定义的网站目录。问:局域网访问apache?我和另外一台机子在局域网内
我要访问他机子上的项目
他修改了httpd文件,防火墙的例外也做了,路由上的映射也做了
但我访问他(域名+端口,IP+端口都试过,非80端口)还是报403错误
请教高人指点一下啊~~~~~~~~谢谢他的是server03我的是win7答:403是应用错误不是网络问题。让他去检查他的应用/系统是不是正常,可以让他试试本机访问。
403-禁止访问:IIS定义了许多不同的403错误,它们指明更为具体的错误原因:·403.1-执行访问被禁止。
·403.2-读访问被禁止。
·403.3-写访问被禁止。
·403.4-要求SSL。
·403.5-要求SSL128。
·403.6-IP地址被拒绝。
·403.7-要求客户端证书。
·403.8-站点访问被拒绝。
·403.9-用户数过多。
·403.10-配置无效。
·403.11-密码更改。
·403.12-拒绝访问映射表。
·403.13-客户端证书被吊销。
·403.14-拒绝目录列表。
·403.15-超出客户端访问许可。
·403.16-客户端证书不受信任或无效。
·403.17-客户端证书已过期或尚未生效。
·403.18-在当前的应用程序池中不能执行所请求的URL。这个错误代码为IIS6.0所专用。
·403.19-不能为这个应用程序池中的客户端执行CGI。这个错误代码为IIS6.0所专用。
·403.20-Passport登录失败。这个错误代码为IIS6.0所专用。收藏查看我的收藏5863有用+11349php(PHP开发)编辑PHP(外文名:HypertextPreprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,易于学习,使用广泛,主要适用于Web开发领域。中文名超文本预处理器外文名HypertextPreprocessor编程范型面向对象、命令式编程设计者RasmusLerdorf维
护ThePHPGroup最新版本PHP5.6.0(28Aug2014)操作系统windows/linux/Mac跨平台外语缩写PHP目录1语言解析2发展3开发工具4特性5优势▪开放源代码▪免费性▪快捷性▪跨平台性强▪效率高▪图像处理▪面向对象▪专业专注6技术应用7参考手册8版本区别▪选择版本▪VC6与VC9▪TS和NTS▪查看版本9PHP310PHP4▪简介▪优越性11PHP5▪新对象模式▪异常处理▪命名空间▪加密12版本6设想13环境配置▪Windows下▪安装过程▪UNIX下14其他方面▪相关语法及概念▪模板引擎▪框架介绍thinkphp1语言解析\o"编辑本段"编辑[1]
PHP独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。2发展\o"编辑本段"编辑\o"查看图片"
PHP安装PHP原始为PersonalHomePage的缩写,已经正式更名为"PHP:HypertextPreprocessor"。注意不是“HypertextPreprocessor”的缩写,这种将名称放到定义中的写法被称作递归缩写。PHP于1994年由RasmusLerdorf创建,刚刚开始是RasmusLerdorf为了要维护个人网页而制作的一个简单的用Perl语言编写的程序。这些工具程序用来显示RasmusLerdorf的个人履历,以及统计网页流量。后来又用C语言重新编写,包括可以访问数据库。他将这些程序和一些表单直译器整合起来,称为PHP/FI。PHP/FI可以和数据库连接,产生简单的动态网页程序。在1995年以PersonalHomePageTools(PHPTools)开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档。并且发布了PHP1.0!在这的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了PHP,并且强烈要求增加一些特性。比如循环语句和数组变量等等;在新的成员加入开发行列之后,RasmusLerdorf在1995年6月8日将PHP/FI公开发布,希望可以透过社群来加速程序开发与寻找错误。这个发布的版本命名为PHP2,已经有PHP的一些雏型,像是类似Perl的变量命名方式、表单处理功能、以及嵌入到HTML中执行的能力。程序语法上也类似Perl,有较多的限制,不过更简单、更有弹性。PHP/FI加入了对MySQL的支持,从此建立了PHP在动态网页开发上的地位。到了1996年底,有15000个网站使用PHP/FI。\o"查看图片"
ISAPI筛选器在1997年,任职于TechnionIIT公司的两个以色列程序设计师:ZeevSuraski和AndiGutmans,重写了PHP的剖析器,成为PHP3的基础。而PHP也在这个时候改称为PHP:HypertextPreprocessor.[5]。经过几个月测试,开发团队在1997年11月发布了PHP/FI2。随后就开始PHP3的开放测试,最后在1998年6月正式发布PHP3。ZeevSuraski和AndiGutmans在PHP3发布后开始改写PHP的核心,这个在1999年发布的剖析器称为ZendEngine[7],他们也在以色列的RamatGan成立了ZendTechnologies来管理PHP的开发。在2000年5月22日,以ZendEngine1.0为基础的PHP4正式发布,2004年7月13日则发布了PHP5,PHP5则使用了第二代的ZendEngine[5]。PHP包含了许多新特色,像是强化的面向对象功能、引入PDO(PHPDataObjects,一个存取数据库的延伸函数库)、以及许多效能上的增强。PHP4已经不会继续\o"查看图片"
PHP更新,以鼓励用户转移到PHP5。2008年PHP5成为了PHP唯一的有在开发的PHP版本。将来的PHP5.3将会加入Latestaticbinding和一些其他的功能强化。PHP6的开发也正在进行中,主要的改进有移除register_globals、magicquotes和Safemode的功能。PHP最新稳定版本:5.4.30(2013.6.26)PHP最新发布的正式版本:5.5.14(2014.6.24)PHP最新测试版本:5.6.0RC2(2014.6.03)2013年6月20日,PHP开发团队自豪地宣布立即推出PHP5.5.0。此版本包含了大量的新功能和bug修复。需要开发者特别注意的一点是不再支持WindowsXP和2003系统。3开发工具\o"编辑本段"编辑集成开发环境是一种集成了软件开发过程中所需主要工具的集成开发环境,其功能包括但不仅限于代码高亮、代码补全、调试、构建、版本控制等。一些常见的PHPIDEs如下:ZendStudio:商业版,Zend官方出品,基于eclipseEclipsewithPDT:免费Coda:商业版,针对Mac用户NetBeans:免费,功能强大PHPStorm:商业版AptanaStudio:免费PhpEd:商业版KomodoIDE/Edit:IDE为商业版,Edit可免费使用AdobeDreamweaver:商业版除去集成开发环境,具备代码高亮功能的常见文本编辑器因其轻巧灵活也常被选作开发工具,例如:Notepad++、Editplus、SublimeText、Everedit(国人开发)等等。4特性\o"编辑本段"编辑PHP的特性包括:1.PHP独特的语法混合了C、Java、Perl以及PHP自创新的语法。2.PHP可以比CGI或者Perl更快速的执行动态网页——动态页面方面,与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多;PHP具有非常强大的功能,所有的CGI的功能PHP都能实现。3.PHP支持几乎所有流行的数据库以及操作系统。4.最重要的是PHP可以用C、C++进行程序的扩展!5优势\o"编辑本段"编辑开放源代码所有的PHP源代码事实上都可以得到。免费性和其它技术相比,PHP本身免费且是开源代码。快捷性程序开发快,运行快,技术本身学习快。嵌入于HTML:因为PHP可以被嵌入于HTML语言,它相对于其他语言。编辑简单,实用性强,更适合初学者。跨平台性强由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS、MacOS下。[2]
效率高PHP消耗相当少的系统资源。图像处理用PHP动态创建图像,PHP图像处理默认使用GD2。且也可以配置为使用imagemagick进行图像处理。面向对象在php4,php5中,面向对象方面都有了很大的改进,php完全可以用来开发大型商业程序。专业专注PHP支持脚本语言为主,同为类C语言。6技术应用\o"编辑本段"编辑伪静态静态页面生成数据库缓存过程缓存div+cssw3c标准大负荷分布式flex桌面程序应用(不擅长)支持MVC模型Smarty模版引擎7参考手册\o"编辑本段"编辑函数完整参考手册:[1]
序号分类描述1Array函数2Calendar函数日历扩展包含了简化不同日历格式间的转换的函数。3Date/Time函数Date/Time函数用于从PHP脚本运行的服务器上获取日期和时间并进行格式化。4Directory函数Directory函数用于获得关于目录及其内容的信息。5Error/Logging函数Error/Logging函数用于对错误进行处理和记录。6Filesystem函数Filesystem函数用于访问和操作文件系统。7Filter函数PHP过滤器用于对来自非安全来源的数据(比如用户输入)进行验证和过滤。8FTP函数FTP函数通过文件传输协议(FTP)提供对文件服务器的客户端访问。9HTTP函数HTTP函数用于对由Web服务器发送到浏览器的信息进行操作。10Libxml函数Libxml函数和常量与SimpleXML、XSLT以及DOM函数一起使用。11Mail函数mail()函数用于从脚本中直接发送电子邮件。12Math函数Math函数能处理integer和float范围内的值。13杂项函数我们把不属于其他类别的函数归纳到杂项函数类别。14MySQLi函数MySQLi函数用于访问MySQL数据库服务器。15SimpleXML函数SimpleXML扩展提供了一种获取XML元素的名称和文本的简单方式。16String函数17XMLParser函数XMLParser函数允许您创建XML解析器,并为XML事件定义句柄。18ZipFile函数ZipFile函数允许您读取压缩文件。8版本区别\o"编辑本段"编辑[3]
PHP版本VC6与VC9、ThreadSafe与None-ThreadSafe等的区别PHP的大版本主要分三支:PHP4/PHP5/PHP6其中,PHP4由于太古老、对QQ支持不力已基本被淘汰,请无视PHP4。PHP6由于基本没有生产线上的应用,还基本只是一款概念产品,很多功能已在PHP5.3.3上实现,所以也不详述,请无视PHP6。PHP5的版本主要分四支:PHP5.2之前的版本、PHP5.2.X、PHP5.3和日前发布的PHP5.4。选择版本PHP5.2之前的版本不值得考虑,因为某些功能缺陷或者BUG。PHP5.4还处于Beta试用的版本号,非稳定版本,请无视PHP5.4。主流PHP程序对PHP5.2.X的兼容性最好,而每次版本号的升级带来的都是安全性和稳定性的改善,所以宜挑选最新的版本。目前PHP5.2系列最新的是PHP5.2.17。而如果产品是自己开发自己使用,PHP5.3在某些方面更具优势,在稳定性上更胜一筹,增加了很多PHP5.2所不具有的功能,比如内置php-fpm、更完善的垃圾回收算法、命名空间的引入、sqlite3的支持等等,是部署项目值得考虑的版本,强烈推荐PHP5.3.3。除了版本号的不同,同一版本号的PHP版本也有区别,并且在选择PHP扩展的时候需要注意。install版:可执行的MSI格式安装包。ZIP版:解压即可用。和install版无区别。建议选择ZIP版。DEBUG版:最终用户无需关心。VC6与VC9如果你在apache1或者apache2下使用PHP,你应该选择VC6的版本如果你在IIS下使用PHP应该选择VC9的版本,VC6的版本使用visualstudio6编译,VC9使用VisualStudio2008编译,并且改进了性能和稳定性。VC9版本的PHP需要你安装Microsoft2008C++Runtime。不要在apache下使用VC9的版本。TS和NTSTS指ThreadSafety,即线程安全,一般在IIS以ISAPI方式加载的时候选择这个版本。NTS即None-ThreadSafe,一般以fastcgi方式运行的时候选择这个版本,具有更好的性能。从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,这是由于与Linux/Unix系统是采用多进程的工作方式不同的是Windows系统是采用多线程的工作方式。如果在IIS下以CGI方式运行PHP会非常慢,这是由于CGI模式是建立在多进程的基础之上的,而非多线程。一般我们会把PHP配置成以ISAPI的方式来运行,ISAPI是多线程的方式,这样就快多了。但存在一个问题,很多常用的PHP扩展是以Linux/Unix的多进程思想来开发的,这些扩展在ISAPI的方式运行时就会出错搞垮IIS。因此在IIS下CGI模式才是PHP运行的最安全方式,但CGI模式对于每个HTTP请求都需要重新加载和卸载整个PHP环境,其消耗是巨大的。为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解决方案。FastCGI可以让PHP的进程重复利用而不是每一个新的请求就重开一个进程。同时FastCGI也可以允许几个进程同时执行。这样既解决了CGI进程模式消耗太大的问题,又利用上了CGI进程模式不存在线程安全问题的优势。因此,如果是使用ISAPI的方式来运行PHP就必须用ThreadSafe(线程安全)的版本;而用FastCGI模式运行PHP的话就没有必要用线程安全检查了,用NoneThreadSafe(NTS,非线程安全)的版本能够更好的提高效率。查看版本一个很简单的办法就是phpinfo();ThreadSafetydisabled是NTS,enabled是TSConfigureCommand看到VC98字样的是VC6,Compiler标明MSVC9(VisualC++2008)的是VC9在WIN7下:IIS7+NTS+FastCGI+vc9是最佳搭档或者apache+fastcgi+nts+vc6。在WINXP下:Apache+TS+Apachemodule+vc6最合适的搭档。9PHP3\o"编辑本段"编辑\o"查看图片"
PHPPHP3跟Apache服务器的紧密结合的特性;加上它可以不断的更新及加入新的功能,而且几乎支持所有主流与非主流数据库。再以它能高速的执行效率,使得PHP在1999年中的使用站点已经超过了150000。加上它的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026有关警察面试题目及答案
- 2026中国塑料加工行业市场现状与投资风险评估
- 宣传思想文化工作自查报告个人思想政治方面自查报告(3篇)
- 2026氢燃料电池行业市场前景分析与投资风险评估报告
- 2026食品加工行业产业现状分析与未来规划及投资发展规划报告
- 2026中国外汇市场风险管理现状评估及金融机构业务发展战略规划文档
- 2026中国新能源汽车行业市场现状供需分析及品质评估规划分析研究报告
- 2026中国智能测量行业市场发展分析及投资价值评估研究报告
- 2026年邢台市桥东区街道办人员招聘笔试参考题库及答案详解
- 2026直播电商虚拟主播人设定位与用户粘性提升策略
- 2026年全国中级经济师之中级经济师经济基础知识考试综合能力题详细参考解析
- 2026江苏淮安淮阴区国家统计局淮阴调查队招聘编制外工作人员1人笔试参考题库及答案详解
- 2026年云南事业单位考试真题
- 电子书 -失效模式及影响分析 FMEA-AIAG-VDA-第一版
- 检验科实验室标本处理与运输指南
- DB11-T 383-2023 建筑工程施工现场安全资料管理规程
- 中层管理能力提升2026年培训课件
- 2026年衡水学院教师招聘考试参考试题及答案解析
- 工业互联网基础知识
- 2025春人教版七年级英语下册单词默写练习
- 药品注册岗位招聘笔试题(某大型国企)2025年试题集精析
评论
0/150
提交评论