【发布时间】:2019-12-02 16:23:52
【问题描述】:
我想通过 CMD 测试运行一个 php 函数,但是当我运行 php index.php Cron test 时,我得到:
An uncaught Exception was encountered
Type: Error
Message: Call to undefined function mysqli_init()
Filename: C:\xampp2\htdocs\flybyspace\system\database\drivers\mysqli\mysqli_driver.php
Line Number: 135
Backtrace:
File: C:\xampp2\htdocs\flybyspace\application\models\Booking_Model.php
C:\xampp2\htdocs\flybyspace>php index.php Cron test
An uncaught Exception was encountered
Type: Error
Message: Call to undefined function mysqli_init()
Filename: C:\xampp2\htdocs\flybyspace\system\database\drivers\mysqli\mysqli_driver.php
Line Number: 135
Backtrace:
File: C:\xampp2\htdocs\flybyspace\application\models\Booking_Model.php
Line: 5
Function: database
File: C:\xampp2\htdocs\flybyspace\index.php
Line: 315
Function: require_once
php函数:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Cron extends CI_Controller
{
public function test($to = 'World')
{
echo "Hello {$to}!".PHP_EOL;
}
}
?>
我为我的本地服务器和数据库使用 codeigniter 和 XAMPP。
stackoverflow 上的其他答案说我应该在 php.ini 中取消注释 extension=mysqli 但我的已经没有注释了,所以在我的情况下这不是正确的解决方案。
【问题讨论】:
-
可能是同一个问题:stackoverflow.com/a/38124654/5754486 ->
extension=php_mysql.dll -
确保您检查的是正确的 php.ini。许多安装都有一个用于 CLI 和 FPM 的单独安装。您可以通过运行
php -i并查找 mysqli 部分来验证它。 -
以及
mysqli_init()不需要参数。唯一可能出错的是您修改了错误的php.ini文件。如果它来自网页,它必须是Apache/bin文件夹中的那个 -
虽然如果你正在编写一个 CRON,那么也许你应该检查 `xampp\php` 文件夹中的
php.ini文件