Beruflich Dokumente
Kultur Dokumente
Favor, use a string de conexo para pg_connect() e pg_pconnect(). $conn = pg_connect("host=seuHost port=suaPorta tty=seuTTY options=suasOpcoes dbname=seuDB user=seuUsuario password=suaSenha"); A sintaxe anterior: $conn = pg_connect ("host", "porta", "opcoes", "tty", "nomebd") ficar obsoleta.
2
Constantes pr-definidas
As contantes abaixo so definidas por esta extenso e somente estaro disponveis quando a extenso foi compilada com o PHP ou carregada dinamicamente durante a execuo.
PGSQL_ASSOC (integer) PGSQL_NUM (integer) PGSQL_BOTH (integer) PGSQL_CONNECTION_BAD (integer) PGSQL_CONNECTION_OK (integer) PGSQL_SEEK_SET (integer) PGSQL_SEEK_CUR (integer) PGSQL_SEEK_END (integer) PGSQL_ESCAPE_STRING (integer) PGSQL_ESCAPE_BYTEA (integer) PGSQL_EMPTY_QUERY (integer) PGSQL_COMMAND_OK (integer) PGSQL_TUPLES_OK (integer) PGSQL_COPY_OUT (integer) PGSQL_COPY_IN (integer) PGSQL_BAD_RESPONSE (integer) PGSQL_NONFATAL_ERROR (integer) PGSQL_FATAL_ERROR (integer)
<?php $database = pg_connect ("dbname=jacarta") or die("No pude conectar: " . pg_last_error()); pg_query ($database, "begin") or die ("Consulta Invlida: " . pg_last_error ()); $oid = pg_lo_create ($database) or die ("Operao no realizada: " . pg_last_error()); echo "$oid\n"; $handle = pg_lo_open ($database, $oid, "w") or die ("Operao no realizada: " . pg_last_error()); echo "$handle\n"; pg_lo_write ($handle, "large object data") or die ("Operao no realizada: " . pg_last_error()); pg_lo_close ($handle); pg_query ($database, "commit") or die ("Consulta Invlida: " . pg_last_error()); ?>
Aps o sistema concludo, passado pela fase de testes e colocado em produo, posemos utilizar o @ antes do nome das funes para que no mostrem avisos nem mensagens de erro:
3
$database = @pg_connect ("dbname=jacarta") or die("No pude conectar: " . pg_last_error());
As funes PHP mais comumente utilizadas para acesso bancos de dados PostgreSQL so pg_connect conecta ao banco pg_query executa uma consulta ao banco pg_num_rown traz o nmero de registros de umaconsulta pg_fetch_object traz o valor de campos em forma de objeto pg_fetch_array - traz o valor de campos pelo nome ou nmero
resource pg_connect ( string connection_string ) Exemplos:
$bdcon = pg_connect("dbname=flavia"); //conecta a um banco de dados chamado "flavia" $con_string = "host=ovelha port=5432 dbname=flavia user=ze password=buu"; $bdcon4 = pg_connect($con_string); //coneta a um banco de dados chamado "flavia" na mquina "ovelha" com um // usurio e senha
Uma boa prtica criar um script de incluso com a conexo ao banco e incluir em todo script que faa uso do banco:
conexao.inc.php --<?php $conexao = pg_connect("host=localhost port=5432 dbname=DATABASENAME user=USERNAME password=PASSWORD") or die ("Nao consegui conectar ao PostGres --> " . pg_last_error($conexao)); ?> Phpfile.php <?php include('conexao.inc.php'); // Incli a conexo para o banco $resultado=pg_query("SELECT field FROM table WHERE field = '$something' "); $fetch = pg_fetch_row($resultado); // Sample of SQL QUERY //pg_close($conexao); // Close this connection ?>
5
resource pg_query ( resource connection, string query )
<?php $ConnId = pg_connect ("blablabla"); $ResId = pg_query ("select * from table", $ConnId); pg_close ($ConnId); $row = pg_fetch_array ($ResId, 4); ?>
int pg_num_rows ( resource result )
$result = pg_query($conn_id, $query); echo pg_num_rows($result); $sql = "select * from YOURTABLE"; $result = pg_query($sql); $rows = pg_num_rows($result); for ($i = 0; $i < $rows; $i++) { $data = pg_fetch_object($result, $i); echo "$data->COLUMNNAME"; }
objeto pg_fetch_object ( resource result, int row [, int result_type] )
<?php $database = "store"; $db_conn = pg_connect("host=localhost port=5432 dbname=$database"); if (!$db_conn) { echo "Failed connecting to postgres database $database\n"; exit; } $qu = pg_query($db_conn, "SELECT * FROM books ORDER BY author"); $row = 0; // postgres needs a row counter while ($data = pg_fetch_object($qu, $row)) { echo $data->author . " ("; echo $data->year . "): "; echo $data->title . "<br />"; $row++; } pg_free_result ($qu); pg_close ($db_conn);
6
array pg_fetch_array ( resource result [, int row [, int result_type]] ) pg_fetch_array() retorna um array que corresponde linha (registro). Retorna FALSE se no existem mais linhas. row o nmero da linha (registro) a ser recuperado. A primeira linha 0. result_type um parmetro opcional que controla como o valor de retorno iniciado. result_type uma constante e pode ter os seguintes valores: PGSQL_ASSOC, PGSQL_NUM, e PGSQL_BOTH. pg_fetch_array() retorna um array associativo que tem o nome de campo como chave para PGSQL_ASSOC. ndice de campo como chave com PGSQL_NUM e ambos nome/ndice numrico como chave com PGSQL_BOTH. O valor padro PGSQL_BOTH.
<?php $conn = pg_pconnect("dbname=publicar"); if (!$conn) { echo "Um erro ocorreu.\n"; exit; } $result = pg_query($conn, "SELECT * FROM autores"); if (!$result) { echo "Um erro ororreu.\n"; exit; } $arr = pg_fetch_array($result, 0, PGSQL_NUM); echo $arr[0] . " <- array\n"; $arr = pg_fetch_array($result, 1, PGSQL_ASSOC); echo $arr["autor"] . " <- array\n"; ?> Bom exemplo de loop: for($i=0; $row = @pg_fetch_array($result,$i); $i++) { echo $row["field_name"]; }
7 Dicas do PHP com MySQL Date_Add - Para adicionar n dias: <?php mysql_connect("localhost","phpbrasil","phpbrasil"); mysql_select_db("phpbrasil"); $query = ("select nome, tamanho, DATE_ADD(ultimo_dl, INTERVAL n DAY) from phpbrasil"); mysql_query($query); while ($consulta = mysql_fetch_array($query)) { echo "Nome: ".$consulta['nome'] . "<br>"; echo "Tamanho: ".$consulta['tamanho']."<br>"; echo "Data:" .$consulta[2]. "<p>"; } ?> DATE_FORMAT() Tradicionalmente iramos selecionas os dados tabela e fazer um loop para ir formatando cada data para o formato brasileiro. Isso pode ser um pouco cansativo, quando a soluo pode ser essa: <?php mysql_connect("localhost","phpbrasil","phpbrasil"); mysql_select_db("phpbrasil"); $query = ("select nome, tamanho, DATE_FORMAT(ultimo_dl, '%d/%m/%Y') from phpbrasil"); mysql_query($query); while ($consulta = mysql_fetch_array($query)) { echo "Nome: ".$consulta['nome']."<br>"; echo "Tamanho: ".$consulta['tamanho']."<br>"; echo "Data: ". $consulta[2]."<p>"; } ?> Funo COUNT(coluna1, coluna 2, ... , coluna n): Temos uma tabela de registro de textos (textos) e queremos saber quantos textos temos registrados. Ento fazemos isso: <?php mysql_connect("localhost","phpbrasil","phpbrasil"); mysql_select_db("phpbrasil"); $q = mysql_query("select COUNT(*) from textos"); $total = mysql_fetch_row($q); echo "Total de textos: " . $total; ?>
8 Funo SUM(): Temos uma tabela (dls) com a quantidade de downloads de cada programa na coluna downloads. Queremos mostrar quantos downloads j foram feitos no total... assim:
<?php mysql_connect("localhost","phpbrasil","phpbrasil"); mysql_select_db("phpbrasil"); $q = mysql_query("select SUM(downloads) from dls"); $consulta = mysql_fetch_row($q); echo "Total de downloads: ". $consulta[0]." <br>"; ?>