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