基于wamp的php mssql扩展
我试图让wamp php与MsSQL数据库通信,但似乎无法使其正常工作。我在浏览器(Chrome)上收到的当前错误消息是:基于wamp的php mssql扩展,php,sql-server,database,wamp,wampserver,Php,Sql Server,Database,Wamp,Wampserver,我试图让wamp php与MsSQL数据库通信,但似乎无法使其正常工作。我在浏览器(Chrome)上收到的当前错误消息是: ntwdblib.dll是正确的版本(2000.80.194.0) 我不能使用php_sqlsrv(部署服务器仅限linux,sqlsrv仅限windows),尽管通过使用sqlsrv,我可以断定访问信息是正确的(服务器、用户、密码) 我已经降级回WAMPServer2.1e和PHP5.3.1(有些人就是这样工作的) 重新启动wamp服务器时,apache_error.lo
<?php
$dbhandle = mssql_connect($ip,$user,$pass) or die("Couldn't connect to SQL Server on $ip");
$selected = mssql_select_db($dbname,$dbhandle) or die("Couldn't open database at SQL server: $ip");
?>
您安装了MsSQL吗?因为WAMP的M是MySQL而不是MSSQL
无法连接到服务器:(…)无法连接到SQL server“
您是否在PHP for MS-SQL中安装了任何驱动程序模块
除此之外,虚拟机并不一定速度慢且没有特性——至少它可以工作:)
MDB2或PDO可能最适合抽象数据库I/O
问:您能否打开MS-SQL终端,例如Telnet
(这至少可以解决任何类型的连接问题)
这里可能需要此模块:PECL odbtp>=1.1.1(开放数据库传输协议)
^此外,如果此扩展已加载,请签出phpinfo()一次
好吧-在Windows上安装mySQL不会有任何问题(以防有意义)。假设您已尝试从此处安装驱动程序/扩展:
您已经在*AMP堆栈的php
文件夹中更改了php.ini
;并将mssql扩展放在php/ext
文件夹中
经过几个小时的查看,本指南成功地将我连接到MS SQL数据库。
编辑:此外,我的连接类将DB Uname PW和serverIP作为构造函数参数,构造函数调用函数setCon(),因此当创建对象时,连接也是如此。然后我可以以OOP样式调用连接对象上的查询
function setCon(){
$conn = mssql_connect($this->server, $this->UName, $this->pw);
if ($conn){
echo "Connection established @ $this->server.$this->DB (Connected to MS SQL DB)\n";
}
else{
echo "Connection could not be established.";
die( print_r( sqlsrv_errors(), true));
}
然后,稍后需要访问创建的连接
function getCon(){
return mssql_connect($this->server, $this->UName, $this->pw);
}
实际上,默认情况下,wampserver不附带php_mssql.dll,扩展是在php_pdo_mssql或php_dblib之上进行的。
在x64 wampserver 2 PHP 5.3.13上测试
- 使用php_pdo_mssql
- 安装wampserver
- 激活php_pdo_mssql
- 激活php_mssql
- 将ntwdblib.dll复制到bin/php/php{version}/ext/和bin/apache/{version}/bin
- 重新启动所有服务
- 使用php_dblib
- 激活php_dblib而不是php_pdo_mssql
警告不要同时激活php_pdo_mssql和php_dblib
在不同版本的php上,wampserver在5.3.1上的工作方式不同。第一个解决方案对我有效,但在5.3.13秒。你能显示你尝试过的代码吗?当然,这是我的代码:$dbhandle=mssql\u connect($ip,$user,$pass)或die(“无法在$ip上连接到SQL Server”);$selected=mssql\u select\u db($dbname,$dbhandle)或die(”无法在SQL server上打开数据库:$ip”);仍然无法解决此问题。现在我正在使用一个函数检查网站是否联机。如果是,则调用mssql(在linux服务器上工作),如果不是,它会调用mysql上的假表,这些表与mssql表具有相同的结构。这是可行的,但远不是理想的…:谢谢你的回复。我安装了php_mssql扩展,apache没有报告错误。我也知道没有连接问题,因为如果我使用sqlsrv扩展(使用相同的设置)一切正常。我知道,但在这种情况下我需要使用mssql数据库,而不是mysql。数据库是远程的,不在我的机器上。
function setCon(){
$conn = mssql_connect($this->server, $this->UName, $this->pw);
if ($conn){
echo "Connection established @ $this->server.$this->DB (Connected to MS SQL DB)\n";
}
else{
echo "Connection could not be established.";
die( print_r( sqlsrv_errors(), true));
}
function getCon(){
return mssql_connect($this->server, $this->UName, $this->pw);
}