PHP – Conexão e consulta a banco de dados

Que tal usar PHP no Windows para consultar um banco de dados do Microsoft SQL Server?

  • Design-time
<?php
$serverName = "DESKTOP-CRJM4TM\\SQLEXPRESS";

$connectionOptions = array(
    "Database" => "db_Concessionaria",
    "Uid" => "",
    "PWD" => ""
);

$conn = sqlsrv_connect($serverName, $connectionOptions);

if ($conn) {
    echo "Connection established.\n";
} else {
    echo "Connection could not be established.\n";
    die(print_r(sqlsrv_errors(), true));
}

$sql = "SELECT * FROM tb_Veiculo";
$stmt = sqlsrv_query($conn, $sql);

if ($stmt === false) {
    die(print_r(sqlsrv_errors(), true));
}

// Obtém os nomes das colunas
$metaData = sqlsrv_field_metadata($stmt);
$fields = array();
foreach ($metaData as $field) {
    $fields[] = $field["Name"];
}

// Exibe os cabeçalhos
foreach ($fields as $fieldName) {
    echo str_pad($fieldName, 15);
}
echo "\n";

// Exibe os dados
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
    foreach ($fields as $fieldName) {
        echo str_pad($row[$fieldName], 15);
    }
    echo "\n";
}

sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);
?>
  • Runtime
  • Design-time

Substituindo as linhas 33-45 da primeira listagem pelas seguintes:

echo "<table border='1'>";
echo "<tr>";
foreach ($fields as $fieldName) {
    echo "<th>" . $fieldName . "</th>";
}
echo "</tr>";

while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
    echo "<tr>";
    foreach ($fields as $fieldName) {
        echo "<td>" . $row[$fieldName] . "</td>";
    }
    echo "</tr>";
}

echo "</table>";
  • Runtime

  • Sintaxe

Para abrir uma conexão ao banco de dados do Microsoft SQL Server, PHP usa a função sqlsrv_connect, cujos argumentos são a string $serverName (linha 2) e a referência a array associativo $connectionOptions (linha 4). Com a autenticação automática do Windows, não são necessários o usuário (Uid) e a senha (PWD).

A string $conn (valor retornado pela função sqlsrv_connect), definida na linha 10, e a string $sql (que contém as instruções SQL desejadas), definida na linha 19, são argumentos da função sqlsrv_query, cujo valor retornado é atribuído à string $stmt na linha 20.

A exemplo das linhas 22 a 24, as linhas 12 a 17 poderiam ser substituídas por

if ($conn === false) {die(print_r(sqlsrv_errors(), true));}

A consulta $stmt e a conexão $conn são finalizadas respectivamente nas linhas 47 e 48.

A tabela tb_Veiculo do nosso banco de dados db_Concessionaria é exibida através do código contido entre as linhas 26 e 45. Para melhor compreensão, sugiro as seguintes leituras:

Microsoft SQL Server Driver for PHP

sqlsrv_field_metadata

Veja como instalar o PHP no Windows e rodar aplicações no browser, como na segunda listagem exemplificada acima, sem nenhum servidor web tipo “AMP” (MAMP, XAMPP, WampServer, AMPPS…): https://blog.schoolofnet.com/como-instalar-o-php-no-windows-do-jeito-certo-e-usar-o-servidor-embutido/

  • Reflexões

O parlamento é o espelho distorcido da sociedade brasileira. É distorcido porque não é a imagem real, mas é um imagem virtual. Exemplo: o Congresso tem maioria branca, masculina, velha e rica, diferentemente da sociedade. Por que é assim? Porque negro vota em branco, mulher vota em homem, jovem vota em velho, pobre vota em rico, assalariado vota em patrão. O que tem acontecido no Brasil é que barata está elegendo chinelo. Se não fosse assim, a democracia não estaria sendo tão atacada nos últimos 11 anos, e o obscurantismo não seria a maior preocupação das pessoas que leem, conhecem a História, entendem o que é ideologia e têm consciência de classe.

Leave a comment