Laravel - Insert to database

Asked

Viewed 485 times

-1

I’m New in Laravel and I’m trying to insert data to the database but it keeps giving error n I know if I’m doing right as I am doing:

   $nome=$_POST['nome'];
    $sobrenome=$_POST['sobrenome'];
    $email=$_POST['email'];
    $senha=$_POST['senha'];
    $diaN=$_POST['nascdia'];
    $mesN=$_POST['nascmes'];
    $anoN=$_POST['nascano'];
    $cpf=$_POST['cpf'];
    $console=$_POST['console'];
    $game=$_POST['game'];
    if(isset($_POST['resp_legal_nome'])){
    $nomeR=$_POST['resp_legal_nome'];
    }else{
        $nomeR="Sou de maior";
    }
    if(isset($_FILES['foto'])){
        function gerahasc($tamanho = 100, $maiusculas = true, $numeros = true, $simbolos = false)
                            {
                                // Caracteres de cada tipo
                                $lmin = 'abcdefghijklmnopqrstuvwxyz';
                                $lmai = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
                                $num = '1234567890';
                                $simb = '!@#$%*-';

                                // Variáveis internas
                                $retorno = '';
                                $caracteres = '';

                                // Agrupamos todos os caracteres que poderão ser utilizados
                                $caracteres .= $lmin;
                                if ($maiusculas) $caracteres .= $lmai;
                                if ($numeros) $caracteres .= $num;
                                if ($simbolos) $caracteres .= $simb;

                                // Calculamos o total de caracteres possíveis
                                $len = strlen($caracteres);

                                for ($n = 1; $n <= $tamanho; $n++) {
                                // Criamos um número aleatório de 1 até $len para pegar um dos caracteres
                                $rand = mt_rand(1, $len);
                                // Concatenamos um dos caracteres na variável $retorno
                                $retorno .= $caracteres[$rand-1];
                                }

                                return $retorno;
                            }
                            $_FILES['foto']['nome']=gerahasc();
                            include 'carregarFT.php';



    }else{
        $foto="Sem_FT.png"; 
    }

    $nick=$_POST['nickname'];
    $estado=$_POST['estado'];
    $cidade=$_POST['cidade'];
    $hoje=date('d/m/Y');
    $hasc=gerahasc();

    DB::insert('INSERT INTO `usuarios`(`Nome`, `Sobrenome`, `Email`, `Senha`, `NascDia`, `NascMes`, `NascAno`, `Cpf`, `NomeResponsavel`, `Console`, `Game`, `Ninck`, `Estado`, `Cidade`, `Qtdjogo`, `Vitorias`, `Derrotas`, `Empate`, `Vitoriawo`, `Derrotawo`, `Banido`, `Sinalizado`, `Bloqueado`, `Utimologin`, `Ativo`, `Has`, `Voucher`) VALUES ('$nome','$sobrenome','$email','$senha',$diaN,'$mesN',$anoN,$cpf,'$nomeR','$console','$game','$nick','$estado','$cidade',0,0,0,0,0,0,0,0,0,'$hoje',1,'$hasc',2)')

error that’s coming back: inserir a descrição da imagem aqui

  • Try to categorize your questions better, this has nothing to do with Laravel, because you are not using it the way you should, the error in your code is just a simple error of syntax. When using a framework try to read the documentation before leaving using, you are throwing all its resources in the trash, making your method this way.

1 answer

0


You are starting and closing the sql script with simple quotes (') and every varchar value you will insert also uses simple quotes. This makes php interpret that every single quote you use is interrupting the string. Try to open and close the script with double quotes(") and use single quotes only in the varchar fields of the Insert that will solve your problem.

Kind of:

DB::insert("INSERT INTO `usuarios`(`Nome`, `Sobrenome`, `Email`, `Senha`, `NascDia`, `NascMes`, `NascAno`, `Cpf`, `NomeResponsavel`, `Console`, `Game`, `Ninck`, `Estado`, `Cidade`, `Qtdjogo`, `Vitorias`, `Derrotas`, `Empate`, `Vitoriawo`, `Derrotawo`, `Banido`, `Sinalizado`, `Bloqueado`, `Utimologin`, `Ativo`, `Has`, `Voucher`) VALUES ('$nome','$sobrenome','$email','$senha',$diaN,'$mesN',$anoN,$cpf,'$nomeR','$console','$game','$nick','$estado','$cidade',0,0,0,0,0,0,0,0,0,'$hoje',1,'$hasc',2)")
  • now giving this error SQLSTATE[22003]: Numeric value out of range: 1264 Out of range

  • That’s a problem in some numerical field. Take a look at whether all field types are so compatible and fit into the values passed in Insert, including field size and even decimal places.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.