当前位置:首页 » 编程语言 » sqlserver2008php

sqlserver2008php

发布时间: 2023-08-12 20:19:26

linuxphp连接sql2008出现Fatal error: Call to undefined function mssql_connect()

理论上linux下php是可以连接到微软的sqlserver的。(php放在linux系统,sqlserver放在windows系统)
根据你的报错,提示不存在mssql_connect这个函数。
如果你的php是5.2的版本,则需要在php.ini中加入mssql扩展。(还需要对应sql版本的ntwdblib.dll,这个方法使用的是php自带的扩展)

另外也可以去微软官方下载sqlsrv.dll。(由微软开发的扩展。)
注意:sqlsrv3.0对应的是mssql2012
sqlsrv2.0对应的才是mssql2008

官方部分说明:http://msdn.microsoft.com/en-us/library/cc296170.aspx
Microsoft Drivers for PHP for SQL Server, version 3.0 requires PHP 5.3.0 or later. If possible, use PHP 5.3.6, or later. The version 2.0 driver works with PHP 5.2.4 or later, but not with PHP 5.4. If possible, use PHP 5.2.13, or later.

下载地址:
3.0 for sql 2012 http://go.microsoft.com/fwlink/?LinkID=236805
2.0 for sql 2008 r2 x86 http://go.microsoft.com/fwlink/?LinkID=188400&clcid=0x409
2.0 for sql 2008 r2 x64 http://go.microsoft.com/fwlink/?LinkID=188401&clcid=0x409

② php连接sqlserver2008失败

这个是提示你没有安装MSSQl 2012的驱动扩展。
从Sql Server 2008开始,不再支持PHP自带的驱动程序,需要使用微软提供的驱动程序。此驱动程序抛弃了mssql系列函数,只能使用sqlsrv和pdo的方式进行连接操作。

步骤1:下载微软Sql Server官方驱动程序,下载地址:
http://www.microsoft.com/en-us/download/details.aspx?id=20098

步骤2:安装Sql Server的驱动扩展
将下载好的exe程序打开,解压会释放出很多.dll文件,将对应的dll文件拷贝到你的php扩展包目录下的ext目录。

解压得到的dll文件中文件名的数字部分(例如52,53)代表对应不同的PHP版本,文件名中带n的为非线程安全的,文件名中的vc对应的是VC版本,VC6可以部署到Apach2.X版本,VC9可部署到更高版本Apache。

首先,需要确定你的PHP的版本,假设PHP的版本为5.3.x
其次,要确定你的PHP运行的是线程安全的还是非线程安全的(假设线程安全)。
另外,还需要确认的版本(假设Apache2.2)。

那么,你对应的文件应当是php_pdo_sqlsrv_53_ts_vc6.dll(PDO链接)和php_sqlsrv_53_ts_vc6.dll(sqlsrv链接),将这两个文件拷贝到你的PHP的扩展包下的ext目录,然后要修改php.ini,增加这两项扩展的支持:
extension=php_sqlsrv_53_ts_vc6.dll
extension=php_pdo_sqlsrv_53_ts_vc6.dll
保存后重启Apache即可。

③ php怎么样连接sql数据库

1、软件配置

Win7 64 +wampserver2.2d-x32+SQL Server 2008 R2数据库,wamp2.2中的php版本是5.3.10。

Php环境也可以换成php+apache。

2、支持连接MySQL Server配置

php版本5.3以前,有php_mssql功能,可以使用,但是5.3及以后的版本不支持。

2.1、php连接mssql设置(php5.3以前版本)

(1)、打开php.ini,将
;extension=php_mssql.dll前面的分号(;)去掉,然后重启 Apache。如果不行的话,进行第2步。

(2)检查一下你的php安装目录下的ext下面有没有php_mssql.dll存在,如果没有,从www.php.net重新下载一个php安装,要下载那个压缩包的才是最完整的。
如果ext目录下已经有了php_mssql.dll,那么你需要打开php.ini,找到
extension_dir = "./ext"
这一句(或者类似的,不一定是"./ext",查找"extension_dir"即可),然后把"./ext"修改为你的php安装目录的ext目录的完整路径,比如"c:/php/ext",或者"c:/program files/php/ext"这样。然后再次重启 Apache。如果还是不行的话,可能就需要第3步了。

(3)把 php 目录下的 ntwdblib.dll 和 php_mssql.dll 复制到 system32的系统目录中去,然后重起Apache。

(4)然后就可以连接MSSQL,并进行一些操作了。连接例子如下:

2.2、php连接sqlsrv(php5.3以及以上版本)

(1)、下载Microsoft Drivers forPHPfor SQL Server,官方下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=20098,我使用的是SQLSRV2.0。

(2)、解压下载下来的文件将php_pdo_sqlsrv_53_ts_vc9.dll文件和php_sqlsrv_53_ts_vc9.dll文件复制到php安装目录下的ext文件夹中。此处根据版本不同使用的文件不同。

(3)、在php.ini中添加

extension=php_sqlsrv_53_ts_vc9.dll

extension=php_pdo_sqlsrv_53_ts_vc9.dll

到很多;extension=***.dll语句后面,注意extension_dir 指向的位置是否正确。

(4)、重启apache,然后访问http://apache访问地址/?Phpinfo=1,出现下面图片中的内容,则代表配置正确。

(5)、写测试代码,测试代码如下:

(6)、上面完成之后,测试代码的时候会出现连接失败,因为没有安装sql server nation client ,本地客户端,去下载合适的客户端,我使用的是Microsoft? SQL Server? 2012 Native Client,下载地址:

(7)、安装完成之后,在重新启动apache,然后访问就可以连接成功了。

(8)、注意:在php.ini文件所在的文件夹中必须要有ntwdblib.dll文件存在。

④ php 怎么连接sqlserver

php连接sqlserver的方法如下:

以PHP版本是php5.6.12,mssql数据库版本为2008版本为例来说明。

连接方法有两种:

  1. 直接连接,代码如下:

    $servname="CAPTAINHERO567";
    $conninfo=array( "Database"=>"netdata", "UID"=>"lxz2005", "PWD"=>"831140");
    $conn=sqlsrv_connect($servname, $conninfo);
    $sql="select * from Pinfo";
    $db=sqlsrv_query($conn, $sql);
    while($row=sqlsrv_fetch_array($db))
    {
    echo("<div>".iconv("GB2312","UTF-8",$row["Pname"])."</div>");
    }

  2. 使用PDO抽象数据层连接

    $hostname = "192.168.1.100";
    $dbname = "Northwind";
    $username = "sa";
    $pwd = "pwd100";
    $dsn="sqlsrv:Server=$hostname;database=$dbname";

    $conn = new PDO ($dsn,$username,$pwd);
    $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    echo "mssql database connnection sucessed!";

⑤ sqlserver 2008中哪个排序规则是UTF-8

今天使用php操作数据库时发现插入SQLServer2008数据库里的中文字段出现乱码,下面是我一开始时的一些情况:开发环境是php5.3.3+Apache2.2.17+SQLServer2008,php脚本文件的编码是utf-8,传给数据库的编码是GB2312(SQLServer的默认字符编码可能是这个,我不肯定),我用的是微软官方提供的SQLSRV库来连接数据库的(PS:SQLServer2005开始已经不支持用mssql.dll来连接了),故使用sqlsrv_query($conn,"setnamesGB2312");语句来设置传给数据库的编码格式的,sql语句这样写了:insertintoOpinion(content)values('aaa中文内容');运行这条sql语句,发现执行不成功,用sqlsrv_errors()函数来输出错误信息,得到如下结果:复制代码代码如下:Array([0]=>Array([0]=>IMSSP[SQLSTATE]=>IMSSP[1]=>-46[code]=>-46[2]=>-16:�ڶ��ֽڵ�Ŀ�����ҳ�У�û�д�Unicode�ַ����ӳ�䵽���ַ�.[message]=>-16:�ڶ��ֽڵ�Ŀ�����ҳ�У�û�д�Unicode�ַ����ӳ�䵽���ַ�.))这是在网页上显示的结果,上面的乱码是原封不动下来的。从“-16”可以看出是字符编码转换有问题导致的。于是我使用php的iconv函数来对中文进行强制编码转换,然后执行sql语句,代码如下:复制代码代码如下:$string=iconv('utf-8','GB2312//IGNORE','aaa中文内容');$sql="insertintoOpinion(content)values($string)";[code]这时候又报错了,错误信息如下:[code]Array([0]=>Array([0]=>42S22[SQLSTATE]=>42S22[1]=>207[code]=>207[2]=>[Microsoft][SQLServerNativeClient10.0][SQLServer]����'aaa��������'��Ч��[message]=>[Microsoft][SQLServerNativeClient10.0][SQLServer]����'aaa��������'��Ч��))这个错误信息看不出什么头绪,我又把sql语句输出到网页上看一下是不是sql语句写错了,输出结果如下:复制代码代码如下:insertintoOpinion(content)values(aaa��������)咋一看好像没问题,其实是有问题的,注意到后面那个括号里的参数是应该用引号来括起来的(表示它是一个字符串),所以我又修改了sql语句,代码如下:复制代码代码如下:$sql="insertintoOpinion(content)values('".$string."')";为了看清楚我放大点用单引号把$string括起来,这样之后执行sql语句成功,并且数据库里保存的中文没有乱码。

⑥ php如何连接SQL server 2008 r2,求助各位

配置php

a、打开php.in将extension=php_mssql.dll的注释符号去掉。

b、打开php.in将mssql.secure_connection = Off改为on。

c、将php_mssql.dll拷贝到php.in中extension_dir 指定的目录或者系统system32目录下。(php_mssql.dll在php的压缩安装包中有)。

<?php

/**
* @author samsun
* @right 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("<br/>");
}
?>

热点内容
编译器的制作环境 发布:2025-02-06 05:54:34 浏览:828
学车网源码 发布:2025-02-06 05:47:40 浏览:385
搭建局域网影院服务器 发布:2025-02-06 05:47:38 浏览:759
广东一区cf刷经验房密码都是什么 发布:2025-02-06 05:46:20 浏览:633
加密工具源码 发布:2025-02-06 05:44:52 浏览:13
笔记本可用存储多大 发布:2025-02-06 05:44:48 浏览:157
ftp登录后没有反应 发布:2025-02-06 05:29:41 浏览:175
linux建目录命令 发布:2025-02-06 05:29:06 浏览:724
安卓所有照片在哪里 发布:2025-02-06 05:16:32 浏览:972
l2缓存作用 发布:2025-02-06 05:15:02 浏览:291