wamp安装PHP环境后默认的数据库连接方式一般是mysql,如果想连接sqlserver数据库(或程序报Call to undefined function sqlsrv_connect()这个错误的时候)必须安装pdo_sqlsrv,具体安装步骤如下:
1、安装《SQL Server Driver for PHP的扩展包》里面的dll文件到bin\php\ext文件夹里面,注意要安装和自己的PHP对应的版本,我的PHP是5.3版本的,安装解压出来的扩展文件有很多,只配置自己对应的那两个dll文件就好了,如图(标红的是我引用的文件):(PHPdll文件下载地址:https://docs.microsoft.com/en-us/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-2017注意要找自己PHP版本对应的文件)
2、修改配置文件,找到wamp\bin\apache\Apache2.4.6\bin路径下的php.ini添加下面两个扩展(53代表着PHP版本):
extension=php_sqlsrv_53_ts_vc9.dll
extension=php_pdo_sqlsrv_53_ts_vc9.dll
最后保存php.ini后重启Apache。wamp\bin\php文件夹下的php.ini文件改不改都行,就看你生效的php.ini文件是哪个。
3、查看安装结果,输出phpinfo(),看看下图中是否出现pdo_sqlsrv这一项,如果能看到说明扩展安好了,就可以正常连接sqlserver数据库。
4、安装ODBC Driver 11 for SQL ,下载后文件为msodbcsql.msi,注意安装对应系统版本,64位装64位,这个不用担心按错,装x86装不上。点开下图标出来的地方去下载对应版本
5、连接sqlserver数据库
$server=C('CW_SERVER');
$username=C('CW_USERNAME');
$password=C('CW_PASSWORD');
$database=C('CW_DATABASE');
$connectionInfo = array("UID"=>$username, "PWD"=>$password, "Database"=>$database);
$conn = sqlsrv_connect( $server, $connectionInfo);
if( $conn == false)
{
// echo "!";
// die( print_r( sqlsrv_errors(), true));
exit ( "{success:false,msg:'连接中间表失败'}" );
}
$db = M ( );
//同步应收
//删除清空的应收和实收数据
$db->query("truncate table think_xf");
//遍历财务所有应收,插入应收
$query = sqlsrv_query($conn, "select T_XSSFB.SFXMDM,SFJE,XH,XM,SFZH,SFXMMC from T_XSSFB inner join T_SFXMDMB on T_SFXMDMB.SFXMDM=T_XSSFB.SFXMDM");
//$row=sqlsrv_fetch_array($query);
$sqlinsert="INSERT INTO `think_xf` (`sfzh`, `xh`, `xm`, `zkzh`, `sfxm`, `sfxmdm`, `sfje`) values ";
while ($row=sqlsrv_fetch_array($query)){
$sfxmdm=trim($row[0]);
$sfje=trim($row[1]);
$xh=trim($row[2]);
$xm=trim($row[3]);
$sfzh=trim($row[4]);
$sfxmmc=iconv("GBK", "UTF-8", $row[5]);//iconv("GBK", "UTF-8", $row[4]);
$sqlinsert.="('{$sfzh}','{$xh}','{$xm}','{$xh}','{$sfxmmc}','{$sfxmdm}','{$sfje}'),";
}
$sqll=rtrim($sqlinsert,',');
$result=$db->query($sqll);
测试你的程序就好了。