我有一台在Windows下运行的开发计算机。
对于一个项目,我要创建一个必须连接到Ingres数据库服务器的php网站。
所以我安装了wamp,我安装了ingres(服务器和客户端,在我的本地机器上)。
我在php_ingres.dll
文件夹中添加了我在其网站(C:\wamp\bin\php\php5.3.5\ext
)上找到的库,并在配置文件中添加了一行“extension=php_ingres.dll
”。
我关闭wamp并重新启动它,然后我重新启动了服务器,现在我看到wamp菜单中的一个复选标记,表示php_ingres现在已经激活。但是,当我转到服务器的欢迎页面时,我看不到此扩展名已加载。如果我进入php信息页面,我在配置命令中看不到任何Ingres条目。
我找不到任何post/tutorial/...
指示如何执行此操作,所以任何帮助都将不胜感激!
谢谢!
编辑:我做了一个小测试,看看我是否可以连接到Ingres数据库:
<?php
$link = ingres_connect("localhost", "demodbtest", "demodbtest") or die("Connexion impossible");
echo "Connexion réussie";
$result = ingres_query($link,"select * from airline");
while ($row = ingres_fetch_array($result)) {
echo $row["al_iatacode"]; // utilisation du tableau associatif
echo $row["al_name"];
echo $row["al_ccode"]; // utilisation du tableau à indices numériques
echo "</br>";
}
ingres_close($link);
?>
我收到了这个错误:
(!)致命错误:调用未定义的函数ingres_connect() 第2行的C:\ wamp \ www \ tests \ index.php
有关我的安装的一些信息:
我有一个Windows 7专业版32位
Wampserver 2.1(http://sourceforge.net/projects/wampserver/files/WampServer%202/WampServer%202.1/WampServer2.1e-x32.exe/download)
Apache 2.2.17
PHP 5.3.5
Ingres 10.1.0社区版(在此处下载:http://esd.ingres.com/product/Community_Projects/Ingres_Database/Windows_32-Bit/Ingres_10.1_Build_121/ingres-10.1.0-121-gpl-win-x86-NoDoc.zip/http)
这里下载了PHP驱动程序:http://esd.ingres.com/product/drivers/PHP/Windows_32-Bit/PHP_Driver
答案 0 :(得分:0)
要实际测试扩展是否已加载,您也可以调用其中一个功能。如果加载了扩展,则不应该为缺少的函数发生致命错误。这可能是最快的检查之一。
另一项检查是使用extension_loaded
*PHP Manual**,它会为您提供所有已加载扩展的列表。有关详细信息,请参阅上面的PHP手册链接。
配置行不会显示ingres扩展名,因为它尚未编译。这完全没问题,因为您将其作为扩展名加载(.dll
),因此它不属于php.exe
。这就是您在配置行中看不到它的原因。
ingres
。在phpinfo()
页面上,使用浏览器中的搜索功能(通常为CTRL+F
)并尝试找到单词ingres
。如果已加载,您应找到显示扩展名默认设置的部分。
以下是xdebug扩展的示例屏幕截图。对于ingres来说,这看起来可能类似:
图片来自:Launching xdebug in Eclipse stuck at 57% - How to trouble-shoot?
答案 1 :(得分:0)
仔细检查您的extension_dir
设置以及正在使用的实际php.ini
文件。如果通过Apache(或IIS)在脚本中执行php.exe -i
,则从命令行调用phpinfo()
可能不会提供相同的输出。实际上http://www.wampserver.com/en/faq.php表示有3个潜在的php.ini
脚本。
答案 2 :(得分:0)
问题是我没有在本地安装ingres客户端,所以看来这个lib在没有它的情况下无法运行