【发布时间】:2013-08-09 14:50:01
【问题描述】:
我已经阅读(并尝试过)我能找到的所有帖子,但没有运气。 phpinfo 不显示 sqlsrv,但 ext 文件夹是正确的(已测试)并且 dll 在那里。
extension=php_pdo.dll //which I don't think is actually needed for this version
extension=php_sqlsrv_53_nts.dll
extension=php_pdo_sqlsrv_53_nts.dll
它们位于 c:/PHP/ext
使用 FastCGI,重启了 IIS 和整个服务器。
此版本的 PHP (X86) 和 MSSQL10_50.SQLEXPRESS 已安装并运行一年。
Windows Server 2008 R2
PHPINFO
编译器:MSVC9 (Visual C++ 2008)
PHP 扩展构建:API20100525,NTS,VC9
但是,在 PHPINFO 上,我在配置命令上看到了这个:
"--without-mssql" "--without-pdo-mssql"
刚刚找到并添加:
extension=php_sqlsrv_30_53_nts_vc9x86.dll
extension=php_pdo_sqlsrv_30_53_nts_vc9x86.dll
然后:
extension_dir="C:\PHP\ext"
所以我知道我已经正确安装了 dll
任何帮助将不胜感激 - 到目前为止这两天!
【问题讨论】:
-
重新安装 PHP,安装 sqlsrv 并正常工作。但是,它实际上并没有更新数据库,即使它说它会更新。此代码生成“已更新”,但数据库未更新:
-
for ($i=0; $i "XXXX", "UID"=>"xxxxx", "PWD"=>"xxxxx" ); $conn = sqlsrv_connect($serverName, $connectionInfo); if($conn === false) { die( print_r( sqlsrv_errors(), true)); } $sql = "select * from CampaignStats where var0='$campaign_id' and var1='$sent[$i]'"; $stmt = sqlsrv_query($conn, $sql);
-
if( $stmt === false ) { $sql = "INSERT INTO CampaignStats (Var0,Var1,Var2,Var3,Var4,Var5,Var6,Var7) VALUES('$campaign_id',' $sent[$i]','$open[$i]','$blocked[$i]','$bounced[$i]','$spam[$i]','$click[$i ]', '$status[$i]')"; } else { $sql = "UPDATE CampaignStats set Var0='$campaign_id',Var1='$sent[$i]',Var2='$open[$i]', Var3='$blocked[$i]', Var4='$bounced[$i]', Var5='$spam[$i]', Var6='$click[$i]', Var7='$status[$i]' where var0='$campaign_id'和 var1='$sent[$i]'"; }
-
$stmt = sqlsrv_query($conn, $sql); if( $stmt === false ) { echo "未更新
"; } else { echo "更新
"; } sqlsrv_close($conn); }