Problem with bindParam - PHP

3

I'm having problems with bindParam, could anyone help me?

I have a code for user registration in the bank ...

<?php

require_once 'init.php';

// Pega os dados do formulario
$nome = isset($_POST['nome']) ? $_POST['nome'] : null;
$nascimento = isset($_POST['nascimento']) ? $_POST['nascimento'] : null;
$email = isset($_POST['email']) ? $_POST['email'] : null;
$senha = isset($_POST['senha']) ? $_POST['senha'] : null;
$seg_senha = sha1($senha);  // Senha criptografada

// Validação bem simples, só para evitar dados vazios
if(empty($nome) || empty($nascimento) || empty($email) || empty($senha)){
    echo 'Volte e preencha todos os campos';
    exit;
}

// Insere no banco de dados
$pdo = db_connect();
$sql = "INSERT INTO usuarios(nome, nasc, email, senha)
        values(:nome, :nasc, :email, :senha)";
$stmt = $pdo->prepare($sql);
$stmt = bindParam(':nome', $nome);
$stmt = bindParam(':nasc', $nascimento);
$stmt = bindParam(':email', $email);
$stmt = bindParam(':senha', $seg_senha);

if($stmt->execute()){
    header('Location: index1.php');
}else{
    echo 'Erro ao cadastrar usuario no banco';
    print_r($stmt->errorInfo());
}

When I run it returns me the following error: Fatal error: Call to undefined function bindParam () in C: \ wamp64 \ www \ ProjectALPHA \ core \ cadastrar.php on line 23

I do not know how to fix it.

    
asked by anonymous 28.12.2016 / 01:18

1 answer

6

There is an error in the way you have implemented BIND.

Where has $stmt = bindParam should be $stmt->bindParam

See example below:

<?php

require_once 'init.php';

// Pega os dados do formulario
$nome = isset($_POST['nome']) ? $_POST['nome'] : null;
$nascimento = isset($_POST['nascimento']) ? $_POST['nascimento'] : null;
$email = isset($_POST['email']) ? $_POST['email'] : null;
$senha = isset($_POST['senha']) ? $_POST['senha'] : null;
$seg_senha = sha1($senha);  // Senha criptografada

// Validação bem simples, só para evitar dados vazios
if(empty($nome) || empty($nascimento) || empty($email) || empty($senha)){
    echo 'Volte e preencha todos os campos';
    exit;
}

// Insere no banco de dados
$pdo = db_connect();
$sql = "INSERT INTO usuarios(nome, nasc, email, senha)
        values(:nome, :nasc, :email, :senha)";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':nome', $nome);
$stmt->bindParam(':nasc', $nascimento);
$stmt->bindParam(':email', $email);
$stmt->bindParam(':senha', $seg_senha);

if($stmt->execute()){
    header('Location: index1.php');
}else{
    echo 'Erro ao cadastrar usuario no banco';
    print_r($stmt->errorInfo());
}

I hope I have helped!

    
28.12.2016 / 01:22