配置php
a、打开phpin将extension=php_mssqldll的注释符号去掉。
b、打开phpin将mssqlsecure_connection
=
off改为on。
c、将php_mssqldll拷贝到phpin中extension_dir
指定的目录或者系统system32目录下。(php_mssqldll在php的压缩安装包中有)。
php
/
@author
samsun
@copyright
2007
php使用mssql库,连接sql
server数据库实例
/
$server='ip地址或服务器名';
$username='数据库用户名';
$password='数据库密码';
$database='数据库名';
$conn=mssql_connect($server,$username,$password)
or
die("couldn't
connect
to
sql
server
on
$server");
$db=mssql_select_db($database)
or
die("couldn't
open
database
$database");
或:
php
//链接数据库
$conn=mssql_connect('localhost','sa','123456');
mssql_select_db('gu_dde',$conn);
//query语句
$query="select
from
dde_top";
$adminresult=mssql_query($query);
//输出结果
$num=mssql_num_rows($adminresult);
for($i=0;$i<$num;$i++)
{
$row=mssql_fetch_array($adminresult);
echo($row[1]);
echo("
");
}
如果库文件和日志文件一块附加都附加不上的话,按以下步骤 *** 作:
1,在sqlserver中新建库(新建没有表的空库,库名为你附加失败的库名),记住数据库文件存放地址(最好指定目录)。
2,停止sqlserver服务,在新建的库文件目录下将日志文件删除(ldf),然后将附加失败的库文件覆盖进去。
3,启动sqlserver服务,但不停止一切连接该库的服务。
然后执行语句:
use master
go
alter database db_name set emergency
go
4、置为单用户模式,并重建日志:
alter database db_name set single_user with rollback immediate
go
alter database db_name Rebuild Log on (name=log_name,filename='C:\log_nameldf')
go
alter database dbname set multi_user
go
其中日志文件目录及文件名按实际情况填写。
5、dbcc checkdb尝试修复库。
Use master
go
sp_dboption 数据库名, single, true
dbcc checkdb(dbname,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(dbname,REPAIR_REBUILD)
go
sp_dboption 数据库名, single, false
go
如果修复过程中有错误则库损坏严重,可能修复失败。
最近遇到一个服务器的数据库文件增长很快,情况属于正常,磁盘空间很快就要满了,但是另一个分区还有大把的空间,所以寻思着怎么把数据库文件,放过去,代码如下:
DECLARE @DBNAME VARCHAR(255)
DECLARE @TargetPath VARCHAR(255)
DECLARE @CmdCommand VARCHAR(2000)
SET @DBNAME='TEST'
SET @TargetPath='D:\Program Files\Microsoft SQL Server\MSSQL10_50MSSQLSERVER\MSSQL\DATA'
--第一步:设置数据库脱机
SET @CmdCommand= 'ALTER DATABASE '+@DBNAME+' SET OFFLINE'
EXEC(@CmdCommand)
--第二步:物理拷贝数据库文件到新目录
DECLARE @FileName VARCHAR(255)
DECLARE @SourceFullName VARCHAR(255)
DECLARE FileCur CURSOR for SELECT name,physical_name from sysmaster_files where database_id=db_id(@DBNAME)
OPEN FileCur
FETCH NEXT FROM FileCur INTO @FileName,@SourceFullName
WHILE @@FETCH_STATUS=0
BEGIN
SET @CmdCommand= 'copy "'+@SourceFullName+'" "'+@TargetPath+'"'
EXEC masterxp_cmdshell @CmdCommand
--修改数据库文件的路径指向新目录
SET @CmdCommand='ALTER DATABASE '+@DBNAME+' MODIFY FILE(FILENAME='''+@TargetPath+CASE WHEN RIGHT(@TargetPath,1)='\'THEN'' ELSE'\' END+
RIGHT(@SourceFullName, CHARINDEX('\', REVERSE(@SourceFullName))-1)+''',name='''+@FileName+''')'
EXEC(@CmdCommand)
FETCH NEXT FROM FileCur INTO @FileName,@SourceFullName
END
CLOSE FileCur
DEALLOCATE FileCur
--第三步:设置数据库联机
SET @CmdCommand= 'ALTER DATABASE '+@DBNAME+' SET ONLINE'
EXEC(@CmdCommand)
也可以把这个做成一个过程,就不在这里修改了。
有没有附加日志文件,
如果库文件和日志文件一块附加都附加不上的话,按以下步骤 *** 作:
1,在sqlserver中新建库(新建没有表的空库,库名为你附加失败的库名),记住数据库文件存放地址(最好指定目录)。
2,停止sqlserver服务,在新建的库文件目录下将日志文件删除(ldf),然后将附加失败的库文件覆盖进去。
3,启动sqlserver服务,但不停止一切连接该库的服务。
然后执行语句:
use master
go
alter database db_name set emergency
go
4、置为单用户模式,并重建日志:
alter database db_name set single_user with rollback immediate
go
alter database db_name Rebuild Log on (name=log_name,filename='C:\log_nameldf')
go
alter database dbname set multi_user
go
其中日志文件目录及文件名按实际情况填写。
5、dbcc checkdb尝试修复库。
Use master
go
sp_dboption 数据库名, single, true
dbcc checkdb(dbname,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(dbname,REPAIR_REBUILD)
go
sp_dboption 数据库名, single, false
go
。如果修复过程中有错误则库损坏严重,可能修复失败。
这不是SSH的问题,而是数据库的相关问题。
即使你不使用SSH,如果要用数据库,也必须知道这些东西。
数据库驱动:
数据库开发商都会提供针对各种主流编程语言提供链接方法。
MySql的驱动commysqljdbcDriver,
sqlserver驱动commicrosoftjdbcsqlserverSQLServerDriver
这个驱动要从数据库开发商取得。
链接:
这个链接也是从数据库开发商取得,但是各种教程都有介绍,也就没必要去问开发商了。
根据数据库不同,链接形式也不同。
数据源,连接池:
你喜欢哪个连接池,那就用什么链接池。
如我的c3p0连接池:
commchangev2c3p0ComboPooledDataSource
以上就是关于php如何连接SQL server 2008 r2,求助各位全部的内容,包括:php如何连接SQL server 2008 r2,求助各位、错误823 前滚了4个事务(在数据库(8)中、SQL数据库怎么用查询来设置文件路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)