0
<?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();

    }
}
?>  
Rajdeep Paul
  • 16,887
  • 3
  • 18
  • 37
  • I didn't see you define `$link` –  Apr 12 '19 at 05:17
  • 2
    Is `$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
  • 1
    English 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 Answers1

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