Instanciar função em MVC
Vou tentar explicar de forma simples a minha dúvida, que acredito ser simples também
eu tenho uma classe(model) para conectar com o banco de dados, nela eu faço a conexão e já deixo algumas funções de SQL prontas
<?php
class ConnectDB{//cria uma classe
private $host; //cria uma variavel privada
private $usuario; //cria uma variavel privada
private $senha; //cria uma variavel privada
private $db; //cria uma variavel privada
private $sql; //cria uma variavel privada
private $con;
function __construct(){ //cria um metodo construtor;
$this->host = ''; //inicializa as variaveis
$this->user = '';
$this->senha = '';
$this->con = '';
$this->db = '';
}
function set($prop,$value){
$this->$prop = $value;
}
public function connect(){
$this->con = mysqli_connect($this->host,$this->usuario,$this->senha);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
} else {
if(mysqli_select_db($this->con,$this->db)){
return true;
} else {
return false;
}
}
}
function executeSQLQuery($sql = null){
if($sql <> null){
return mysqli_query($this->con,$sql);
} else {
return false;
}
}
public function getNumRows($query){
return mysqli_num_rows($query);
}
public function getFetchArray($query){
return mysqli_fetch_array($query);
}
}
?>
Eu instancio a função de conectar em um crontroller, esse controller é chamado na minha classe de usuário, na qual o login é tratado(pega o $_POST e faz a consulta) eu preciso da função executeSQLQuery() do código a cima na minha classe de usuário, mas mesmo que eu instancie no controller da conexão, ele da o erro " ( ! ) Fatal error: Call to undefined function executeSQLQuery() in C:\wamp64\www\Yzac\models\yzac_class_admin_user.php on line *24* "
//controller de conexão
<?php
require('../models/yzac_class_conect.php');
$objCon = new ConnectDB(); //cria uma nova classe, e coloca na variavel$objCon->set('host','localhost'); //coloca um valor na variavel host
$objCon->set('usuario','root'); //coloca um valor na variavel usuario
$objCon->set('senha',''); //coloca um valor na variavel senha
$objCon->set('db','yzac'); //coloca um valor na variavel db
$objCon->connect();
?>
//Classe de usuário
<?php
require '../control/yzac_control_connect.php';Class User extends ConnectDB{
public $name;
public $email;
public $password;
public $sql;
function __construct(){
$this->name = '';
$this->email = '';
$this->password = '';
$this->sql = '';
}
function loginUser(){
$this->email = filter_input(INPUT_POST, 'userEmail');
$this->password = filter_input(INPUT_POST, 'userPassword');
$sql = "SELECT * FROM yzac_tb_admin_user where email_admin_user='$this->email' and password_admin_user = '$this->password';";
$query = executeSQLQuery($sql);
if(getNumRows($query)>1){
$row = getFetchArray();
session_start();
$_SESSION['adminUser'] = $this->usuario;
$_SESSION['id'] = $row['id_admin_user'];
echo "Logado com sucesso";
}else{
echo "usuário inválido";
}
}
}
?>
Espero que consigam entender minha dúvida, basicamente preciso que a função executeSQLQuery() funcione na classe de usuário.
Desde já agradeço!Discussão (1)
Carregando comentários...