CakePHP中的数据库?
如何在CakePHP(v3.1)中使用DBase?我已经用PECL(v5.1.1)安装了它,它可以在普通php中正常工作,但是当我在CakePHP中运行dbase_create()时,它会给我一个错误: 调用未定义的函数App\Controller\dbase\u open()CakePHP中的数据库?,php,cakephp,php-extension,pecl,dbase,Php,Cakephp,Php Extension,Pecl,Dbase,如何在CakePHP(v3.1)中使用DBase?我已经用PECL(v5.1.1)安装了它,它可以在普通php中正常工作,但是当我在CakePHP中运行dbase_create()时,它会给我一个错误: 调用未定义的函数App\Controller\dbase\u open() 我已将扩展包含在/etc/php5/apache2/php.ini和/etc/php5/cli/php.ini中,下面是修复该问题所采取的调试步骤: 错误消息表示函数App\Controller\dbase\u crea
我已将扩展包含在/etc/php5/apache2/php.ini和/etc/php5/cli/php.ini中,下面是修复该问题所采取的调试步骤:
App\Controller\dbase\u create()
不存在。我们所期望的是函数dbase_create()
,因此错误消息表明PHP正在查找错误的命名空间。将函数调用更改为\dbase_create()
会导致PHP查找全局命名空间dbase\u create()
不存在。这至少表明PHP现在正在寻找正确的位置,但该函数也不存在于全局命名空间中php.ini
文件更改时,需要重新启动Apache。重新启动Apache以加载文件的新版本phpinfo()。这给出了一个有趣的结果:一个单独的PHP文件,其中只有phpinfo()
表示加载了DBase 5.1.1,但是从CakePHP应用程序调用phpinfo()
并没有输出任何与DBase相关的内容
php.ini
文件,因此请确保在文件更改时重新启动该服务器。这解决了问题,重新启动CakePHP服务器后,dbase\u create()
函数可用您的控制器是否使用自定义命名空间?如果是这样,您可能需要调用
\dbase\u open()
来告诉PHP从全局名称空间使用该函数。不,我没有为dbase使用任何名称空间。不,我是指您的控制器。根据错误消息,您位于名称空间App\Controller中代码>。对不起。是的,cake会自动使用这个名称空间,但是当我用\dbase\u open()调用它时,我还得到了对未定义函数dbase\u create()的错误调用。还有其他想法吗?最后一个错误实际上是正确的。这意味着PHP正在正确的位置寻找函数。更新php.ini文件后是否重新启动了Apache?