Full width home advertisement

Confira

Post Page Advertisement [Top]

"/>

INSERT, SELECT FreeTDS, SQL Server and PHP


Yooo galerinha! tudo bem?


Hoje venho compartilhar contigo um script que venho desenvolvendo para conectar um banco de dados com o FreeTDS e o MS SQL SERVER. 


Esse deu trabalho, mas por isso quero deixar com vocês a resolução desse enigma. Segue aqui o tuto!


Okay, primeiro você terá que definir a conexão com o banco de dados sendo:

<?php


$serverName="ENDERECO_BANCO";

$dbName="NOME_BANCO";

$dbUser="NOME_USER";

$dbPass="SENHA";

$port=1433;

$dsn="odbc:DRIVER=freetds;SERVER=$serverName;PORT=$port;DATABASE=$dbName";


?>


Uma nota: geralmente a porta 1433 seria a padrão para bancos MS SQL SERVER. 

Agora que você ja tem a sua conexão pronta. Vamos construir o INSERT que temos para jogar os dados do nosso formulário na tabela.


<?php

...

//Script de conexao acima

try {

    // Connect to the data source and get a database handle for that connection.

    $dbh = new PDO($dsn, $dbUser, $dbPass);

    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    

   //inserting values

    $prec_nome  = $_POST["prec_nome"];

    $prec_cpf  = $_POST["prec_cpf"];

    $prec_email  = $_POST["prec_email"];

   $stmt = $dbh->prepare("DECLARE @tempTab TABLE(

                            prec_id_protocolo SMALLINT,

                            prec_nome VARCHAR(100),

                            prec_email VARCHAR(50));

   INSERT INTO TABLENAME(prec_nome,prec_cpf, prec_email)

    OUTPUT INSERTED.prec_id_protocolo, INSERTED.prec_nome, INSERTED.prec_email

    INTO @tempTab

VALUES (CONVERT(VARCHAR(100),'$prec_nome'), CONVERT(VARCHAR(20),'$prec_cpf'),

CONVERT(VARCHAR(50),'$prec_email'));

SELECT prec_id_protocolo, prec_nome, prec_email FROM @tempTab");

    $stmt->execute();

?>


Esse script acima vai fazer com que todos os dados do formulario sejam inseridos na tabela. Agora para a gente fazer uso do SELECT que seria a ultima declaração na nossa query SQL vamos ter que usar o seguinte script, apos o  $stmt->execute();

<?

    //Script acima apenas cole tudo em um mesmo file

    while($row = $stmt->fetch()){

    $prec_id_protocolo = $row['prec_id_protocolo'];

}

echo "<html>";

echo "<body>";

echo "<div class='message'>";

echo $_POST["prec_nome"];

echo ", seu pré-cadastro foi realizado com o sucesso!. Seu número de protocolo é ";

echo $_POST["prec_id_protocolo"];

echo $prec_id_protocolo;

echo ". Envie seu produto, junto com esse número de protocolo para sua identificação.<br>";

echo "</div>";

echo "</body>";

echo "</html>";

    

} catch (PDOException $e) {

   echo "Failed to connect: " . $e->getMessage();

}

    $dbh = NULL;

?>


Com o script acima, você deve conseguir fazer o uso do FreeTDS junto com o SQL Server quando tiver um campo id que seja autoincrement. Nesse caso precisei criar uma tabela temporaria chamada @tempTab para hostear os valores que queria que fossem mostrados quando apos o INSERT e na mensagem final.



Bom, por hoje é só galerinha! 

Espero que tenham curtido, 


PS: num outro momento posso editar esse post e colocar algumas coisas em ingles mais para frente. Obrigada pela compreensão. 
kissu ne!

Nenhum comentário:

Postar um comentário

Bottom Ad [Post Page]

"/>
| Designed by Colorlib