因为要访问sql2005,所以我用的微软发布的SQL Server Driver for PHP,地址是:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=8059
我本地的php是线程安全,环境是apache+php,所以我将php_sqlsrv_52_ts_vc6.dll,php_pdo_sqlsrv_52_ts_vc6.dll这两个dll文件放到php根目录下的ext目录下,然后在windows下的php.ini文件增加如下代码:
extension=php_sqlsrv_52_ts_vc6.dll
extension=php_pdo_sqlsrv_52_ts_vc6.dll
保存,重启apache服务器,弹出提示:
“0x00040049”指令引用的“0x00040049”内存。该内存不能为“read”.如果我将php_sqlsrv_52_nts_vc6.dll,php_pdo_sqlsrv_52_nts_vc6.dll复制到相应位置,修改相应文件,重启Apache不会弹出以上提示,在php文件中访问数据库的时候却报以下错误:
Fatal error: Call to undefined function sqlsrv_connect() 这个php文件代码如下:<?php
//phpinfo();
$serverName = "192.168.1.102"; //数据库服务器地址
$uid = "sa"; //数据库用户名
$pwd = "sa2005"; //数据库密码
$connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>"test");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn == false)
{
    echo "连接失败!";
    die( print_r( sqlsrv_errors(), true));
}
$query = sqlsrv_query($conn, "SELECT * FROM URLCONTENT");
while($row = sqlsrv_fetch_array($query)){
echo "sdfdf";
echo $row['IR_HKEY']."-----".$row['IR_URLTITLE']."<br/>";
}
?>
查看phpinfo发现没有sqlsrv的信息