I made a class that connects to the database and makes select, it happens that when I instantiate it in my index, it does not work, from this error:
Notice: Undefined variable: Sql in C: \ xampp \ htdocs \ apitest \ index.php on line 8
Fatal error: Uncaught Error: Class name must be a valid object or a string in C: \ xampp \ htdocs \ apitest \ index.php: 8 Stack trace: # 0 {main} thrown in C: \ xampp \ htdocs \ apitest \ index.php on line 8
Sql.php class:
<?php
class Sql extends PDO{
private $conn;
public function __construct(){
$this->conn = new PDO("mysql:host=localhost;dbname=***","***", "***");
}
private function setParams($statment,$parameters = array()){
foreach ($parameters as $key => $value) {
$this->setParams($key,$value);
}
}
private function setParam($statment,$key,$value){
$statment->bindParam($key,$value);
}
public function query($rawQuery,$params = array()){
$stmt = $this->conn->prepare($rawQuery);
$this->setParam($stmt,$params);
$stmt->execute();
return $stmt;
}
public function select($rawQuery,$params = array()){
$stmt = $this->query($rawQuery,$params);
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
}
?>
Index.php
<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
require 'vendor/autoload.php';
require 'Sql.php';
$app = new \Slim\App;
$sql = new $Sql();
//pagina inicial
$app->get('/',function(){
echo 'Pagina Inicial';
});
//get de test
$app->get('/hello/{name}', function (Request $request, Response $response) {
$name = $request->getAttribute('name');
//$response->getBody()->write("Hello, $name");
$usuarios = $sql->select("SELECT * FROM usuarios");
echo json_encode($usuarios, 1);
//return $response;
});
$app->run();
?>