Insertion in Mysql via PHP foreign key

0

I'm creating an application in PHP and mysql to manage people outside my company.

ThelogicisthisandIinsertedtheCompaniesthatIwillassociatewitheachentityPeoplebutwhentryingtoinsertintothebankviaphpthereisnoanswerneitherinException.(viamysqlisgood).

followspartofthecode:

<?php$erro=null;$valido=false;if(isset($_REQUEST["validar"]) && $_REQUEST["validar"] == true)
{
    if(strlen(utf8_decode($_POST["nome"])) < 4)
    {
        $erro = "Preencha o campo nome corretamente (4 ou mais caracteres)";
    }
    else if(strlen(utf8_decode($_POST["apelido"])) < 3)
    {
        $erro = "Preencha corretamente o apelido ";
    }
    else if(is_numeric($_POST["nifPessoa"]) == false)
    {
        $erro = "Campo nif deve ser numérico e conter 9 digitos";  
    }
    else if ($_POST["sexo"] != "M" && $_POST["sexo"] != "F")
    {
        $erro = "Preencha o campo sexo corretamente. ";
    }

    else if (verificaData($_POST["dataNascimento"]) == false  )
    {
        $erro = "Formato da data invalido";

    }

   /* else if (strlen(utf8_decode($_POST["nacionalidade"])) < 5)
    {

        para já não vou verificar a nacionalidade

    }

    */




    else
    {
        $valido = true;


        try
        {


            $connection = new PDO("mysql:host=localhost;dbname=sifo5","root","root");      
              // Caso der certo o bloco catch() nao arranca

              $connection->exec("set names utf8");


        }

        catch(PDOException $e)
        {
            echo "Falha: ".$e->getMessage();
            exit();
        }

        $sql = "INSERT INTO Pessoas
        (nome,apelido,nifPessoa,sexo,dataNascimento,nascionalidade,Empresas_idEmpresas)
        values(?,?,?,?,?,?,?)";



        $stmt = $connection->prepare($sql); // Prepara a conecção

        $stmt->bindParam(1,$_POST["nome"]);
        $stmt->bindParam(2,$_POST["apelido"]);
        $stmt->bindParam(3,$_POST["nifPessoa"]);
        $stmt->bindParam(4,$_POST["sexo"]);
        $stmt->bindParam(5,$_POST["dataNascimento"]);
        $stmt->bindParam(6,$_POST["nascionalidade"]);
        $stmt->bindParam(7,$_POST["Empresas_idEmpresas"]);

        $stmt->execute();



        if($stmt->errorCode() != "00000")
        {
          $valido=false;
          $erro= "Erro codigo ".$stmt->errorCode().":  ";
          $erro.= implode(", ", $stmt->errorInfo());

        }

    }
}



?>
<HTML>
    <HEAD>
        <TITLE>Formulário para Registo Pessoas</TITLE>
    </HEAD>
    <BODY>
        <?php

            if($valido == true)
            {
                echo "Pessoa criada com sucesso! ";

            }
            else
            {

                if(isset($erro))
                {
                    echo $erro . "<BR><BR>";
                }

        ?>

        <FORM method=POST action="?validar=true">
            Nome da Pessoa:
            <BR>
            <INPUT type=TEXT name=nome
            <?php if(isset($_POST["nome"])) { echo "value='" . $_POST["nome"] . "'"; } ?>
            ><BR>

            Apelido:
            <BR>
            <INPUT type=TEXT name=apelido
            <?php if(isset($_POST["apelido"])) { echo "value='" . $_POST["apelido"] . "'"; } ?>
            ><BR>

            NIF da Pessoa:
            <BR>
            <INPUT type=TEXT name=nifPessoa
            <?php if(isset($_POST["nifPessoa"])) { echo "value='" . $_POST["nifPessoa"] . "'"; } ?>
             ><BR>     <BR>

             Sexo:
            <INPUT type=RADIO name=sexo value="M"
            <?php if(isset($_POST["sexo"]) && $_POST["sexo"] == "M") { echo "checked"; } ?>
            >Masculino

            <INPUT type=RADIO name=sexo value="F"
            <?php if(isset($_POST["sexo"]) && $_POST["sexo"] == "F") { echo "checked"; } ?>
            >Feminino
            <BR> 

          Data de Nascimento:

          <input type= text name=dataNascimento  >
          <BR>


          Nacionalidade:

          <select name="nascionalidade">
  <option value="">-- select one --</option>

</select>

            Empresa externa a que pertence:

            <input type=text name=Empresas_idEmpresas value =1 > (tentei inserir logo numa empresa como teste)


              <INPUT type=SUBMIT value="Enviar">



        </FORM>
        <?php
            }
        ?>


    </BODY>
</HTML>
    
asked by anonymous 10.12.2016 / 14:02

1 answer

0

Just a note. To make sure that connection errors are handled, add the $conn->setAttribute() line as follows. The default error of the PDO is PDO :: ERRMODE_SILENT. Switch to PDO :: ERRMODE_EXCEPTION to enable error display.:

$try {
    con = new PDO("mysql:host=localhost;dbname=nome_banco", "root", "senha");
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $query = 'INSERT INTO users (email,senha) VALUES ('.$email.','.$senha.')';
    $stmt = $conn->prepare($query);
    $stmt->execute();
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

Below I will list the options you will have:

  • PDO :: ERRMODE_SILENT
  • PDO :: ERRMODE_WARNING
  • PDO :: ERRMODE_EXCEPTION
14.07.2017 / 22:27