<?php
require_once "conexion.php";
class Datos extends Conexion
{
    public function registroUsuarioModel($datosModel,$table)
    {
        # code...declaracion stmt
        #prepare: prepara una sentencia sql para ser ejeuctada desde la varibale Stmt
        $stmt = Conexion::conectar($link) -> prepare ("INSERT INTO 
            $table (usuario, password, email) VALUES (:usuario,:password,:email)");
        #binparam vincula una varibale de php a un paramentro  de sustitucion con nombre o siogno de interrogacion correspondinte  de la sentencia sql que fue usada para prepara la sentencia
        $stmt->bindParam(":usuario",$datosModel¨["usuario"],PDO::PARAM_STR);
        $stmt->bindParam(":password",$datosModel¨["password"], PDO::PARAM_STR);
        $stmt->bindParam(":email",$datosModel¨["email"], PDO::PARAM_STR);
        $stmt-> execute();
    }
}
?>  
            Asked
            
        
        
            Active
            
        
            Viewed 1,264 times
        
    0
            
            
         
    
    
        Rajdeep Paul
        
- 16,887
- 3
- 18
- 37
 
    
    
        williams gamboa
        
- 1
- 1
- 
                    I didn't see you define `$link` – Apr 12 '19 at 05:17
- 
                    2Is `$link` perhaps a member of the class `Conexion`? Sounds like you should be using `$this->link` if so. – Qirel Apr 12 '19 at 05:21
- 
                    si lo traigo con el metodo conectar de la clase conexion es necesario incluir la varible? pero el problema en si , es que me genera un error nulo en prepare – williams gamboa Apr 12 '19 at 05:25
- 
                    1English only please – Apr 12 '19 at 05:25
- 
                    tells me that the error is generated by prepare this null – williams gamboa Apr 12 '19 at 05:31
- 
                    Fatal error: Uncaught Error: Call to a member function prepare() on null in C:\xampp\htdocs\miaplicacion\models\crud.php:13 Stack trace: #0 C:\xampp\htdocs\miaplicacion\controllers\controller.php(34): Datos::registroUsuarioModel(Array, 'usuario') #1 C:\xampp\htdocs\miaplicacion\views\modulos\registro.php(15): MvcController->registroUsuarioController() #2 C:\xampp\htdocs\miaplicacion\controllers\controller.php(23): include('C:\\xampp\\htdocs...') #3 C:\xampp\htdocs\miaplicacion\views\template.php(22): MvcController->enlacesPaginasController() #4 – williams gamboa Apr 12 '19 at 05:33
- 
                    C:\xampp\htdocs\miaplicacion\controllers\controller.php(11): include('C:\\xampp\\htdocs...') #5 C:\xampp\htdocs\miaplicacion\index.php(9): MvcController->plantilla() #6 {main} thrown in C:\xampp\htdocs\miaplicacion\models\crud.php on line 13 – williams gamboa Apr 12 '19 at 05:33
- 
                    Where's the code causing that problem? Have you checked the return type of `Conexion::conectar($link)`? – Nico Haase Apr 12 '19 at 07:20
1 Answers
1
            
            
        Conexion::conectar($link)
returns no object, but null, so you cannot call prepare. Fix that first, e.g. by defining $link as catcon stated:
$con = Conexion::conectar($link);
if ($con !== null) {
  $stmt = $con->prepare(...);
  ...
}
 
    
    
        Sixtus
        
- 155
- 8