我在新的Windows 10计算机上安装了一个新的IIS 10服务器PHP 5.6.31 VC11 x64非线程安全(暂时不能使用PHP7)。 PHP现在运行良好,public static void main(String[] args) throws VTDException{
VTDGen vg = new VTDGen();
if (!vg.parseFile("d:\\xml\\medline17n0001.xml", false))
return;
VTDNav vn = vg.getNav();
AutoPilot ap = new AutoPilot(vn);
System.out.println("nesting level"+vn.getNestingLevel());
String PMIDtoSearch = "30000";
ap.selectXPath("/PubmedArticleSet/PubmedArticle[MedlineCitation/PMID = "+PMIDtoSearch+"]");
System.out.println("====>"+ap.getExprString());
int i=0,count=0;
System.out.println(" token count ====> "+ vn.getTokenCount() );
while((i=ap.evalXPath())!=-1){
count++;
System.out.println("string ====>"+vn.toString(i));
}
System.out.println(" count ===> "+count);
}
正在正确显示所有内容。
我刚安装了PHP SQL驱动程序,但没有加载。它没有出现在phpinfo()
中,当我尝试在代码中使用它时,我得到以下PHP错误:
phpinfo()
要安装PHP SQL驱动程序,我执行了以下操作:
PHP Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in test.php:3
Stack trace:
#0 test.php(3): PDO->__construct('sqlsrv:server=...', '', '')
和php_sqlsrv_56_nts.dll
)php_sqlsrv_56_nts.dll
这一切对我来说都是正确的,我之前在其他机器上成功完成了这项工作。我觉得我错过了一些简单的东西。
其他几点说明:
值得注意的是,我安装了Xdebug就好了, 显示在[PHP_XDEBUG-2.5.5-5.6-VC11-NTS-X86_64]
extension=php_xdebug-2.5.5-5.6-vc11-nts-x86_64.dll
[PHP_PDO_ODBC]
extension=php_pdo_odbc.dll
[PHP_PDO_SQLSRV_56_NTS]
extension=php_sqlsrv_56_nts.dll
[PHP_SQLSRV_56_NTS]
extension=php_sqlsrv_56_nts.dll
。
答案 0 :(得分:2)
我已经通过使用PHP for x86而不是x64解决了这个问题。我猜测SQL驱动程序不是为x64设计的(虽然我无法在任何地方看到它)。
一旦我改为PHP 5.6 VC11 x86 Non Thread Safe,一切都会好转。
请注意,您需要Visual C++ Redistributable for Visual Studio 2012 x86才能生效。如果您已经安装了x64可再发行组件,则需要安装专为x86设计的版本。
答案 1 :(得分:-1)
或使用此库:php_pdo_sqlsrv_73_nts.dll