Code in Connection.php
<?php
class Connection{
private $conn;
function connect(){
include_once dirname(__FILE__) . '/Constants.php';
$this->conn = new mysqli($DB_HOST, $DB_USER, $DB_PASSWORD, $DB_NAME, $DB_PORT);
if (mysqli_connect_errno()){
echo "Failed to connect " . mysqli_connect_error();
return null;
}
return $this->conn;
}
}
Using direct php code would work:
<?php
require __DIR__ . '/../includes/Connection.php';
$db = new Connection;
if ($db->connect() != null) {
echo 'Connection successful';
}
?>
However, following code would generate '500 Internal Error'
<?php
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;
require __DIR__ . '/../vendor/autoload.php';
require __DIR__ . '/../includes/Connection.php';
$app = AppFactory::create();
$app->get('/hello/{name}', function (Request $request, Response $response, array $args) {
$name = $args['name'];
$response->getBody()->write("Hello, $name");
$db = new Connection;
if ($db->connect() != null) {
echo 'Connection successful';
}
return $response;
});
$app->run();
Log Stacktrace
PHP Fatal error: Uncaught Error: Class 'mysqli' not found in C:\xampp\htdocs\EctApi\includes\Connection.php:9
php.ini has enabled the extension for mysqli. Now I am totally confused! Please help.