PHP com PostgreSQL. Maurício de Castro Coodenador de Desenvolvimento SOLIS/UNIVATES. Maurício de Castro PHP com PostgreSQL 1

Tamanho: px
Começar a partir da página:

Download "PHP com PostgreSQL. Maurício de Castro mcastro@solis.coop.br Coodenador de Desenvolvimento SOLIS/UNIVATES. Maurício de Castro PHP com PostgreSQL 1"

Transcrição

1 PHP com PostgreSQL Maurício de Castro Coodenador de Desenvolvimento SOLIS/UNIVATES Maurício de Castro PHP com PostgreSQL 1

2 Table of Contents I. Funções para PostgreSQL...4 Introdução...4 Requisitos...4 Instalação...4 Configuração durante execução...4 Como usar e algumas dicas...6 Constantes Predefinidas...8 Exemplos...9 pg_affected_rows...12 pg_cancel_query...12 pg_client_encoding...13 pg_close...13 pg_connect...14 pg_connection_busy...15 pg_connection_reset...15 pg_connection_status...16 pg_convert...16 pg_copy_from...17 pg_copy_to...17 pg_dbname...18 pg_delete...18 pg_end_copy...19 pg_escape_bytea...19 pg_escape_string...20 pg_fetch_all...20 pg_fetch_array...21 pg_fetch_assoc...22 pg_fetch_object...23 pg_fetch_result...25 pg_fetch_row...25 pg_field_is_null...26 pg_field_name...27 pg_field_num...27 pg_field_prtlen...28 pg_field_size...28 pg_field_type...28 pg_free_result...29 pg_get_notify...30 pg_get_pid...30 pg_get_result...31 pg_host...31 pg_insert...32 pg_last_error...32 pg_last_notice...33 pg_last_oid...34 pg_lo_close...35 pg_lo_create...35 pg_lo_export...36 Maurício de Castro PHP com PostgreSQL 2

3 pg_lo_import...36 pg_lo_open...37 pg_lo_read_all...37 pg_lo_read...38 pg_lo_seek...39 pg_lo_tell...39 pg_lo_unlink...39 pg_lo_write...40 pg_metadata...40 pg_num_fields...41 pg_num_rows...41 pg_options...42 pg_pconnect...42 pg_ping...43 pg_port...43 pg_put_line...43 pg_query...44 pg_result_error...45 pg_result_seek...46 pg_result_status...46 pg_select...47 pg_send_query...47 pg_set_client_encoding...48 pg_trace...49 pg_tty...49 pg_unescape_bytea...50 pg_untrace...50 pg_update...51 REFERÊNCIA...52 Maurício de Castro PHP com PostgreSQL 3

4 Funções para PostgreSQL Introdução O banco de dados PostgreSQL é um produto de código aberto e disponível gratuitamente. O Postgres, desenvolvido originalmente no Departamento de Ciência de Computação da Universidade de Berkeley, foi pioneiro em muitos dos conceitos objetorelacionais que agora estão disponíveis em alguns bancos de dados comerciais. Fornece suporte a linguagem SQL92/SQL99, integridade de transações e extensibilidade de tipos. O PostgreSQL é um descendente com código aberto do código original desenvolvido em Berkeley. Requisitos Para usar usar as funções para PostgreSQL, você precisa do PostgreSQL 6.5 ou superior e PostgreSQL 7.0 ou superior para habilitar todos os recursos deste módulo. PostgreSQL suporta inúmeros tipos de codificação de caracteres incluindo a codificação de caracteres multibyte. A versão mais atual e mais informações sobre PostgreSQL estão disponíveis em Instalação Para habilitar o módulo de funções para PostgreSQL, a opção de configuração -- with-pgsql[=dir] deve ser usada no momento da compilação do PHP. Se o módulo PostgreSQL estiver disponível como objeto compartilhado, poderá ser carregado usando a diretiva extension no php.ini ou a função dl(). Configuração durante execução php.ini. O comportamento dessas funções podem ser modificado pelas configurações do Maurício de Castro PHP com PostgreSQL 4

5 Tabela 1. Opções de configuração do PostgreSQL Nome Padrão Alterável pgsql.allow_persistent "1" PHP_INI_SYSTEM pgsql.max_persistent "-1" PHP_INI_SYSTEM pgsql.max_links "-1" PHP_INI_SYSTEM pgsql.auto_reset_persiste nt "0" PHP_INI_SYSTEM pgsql.ignore_notice "0" PHP_INI_ALL pgsql.log_notice "0" PHP_INI_ALL Para mais detalhes e definições das constantes PHP_INI_* veja ini_set(). Aqui está uma pequena explicação sobre as diretivas de configuração. pgsql.allow_persistent boolean Se quer ou não permitir conexões persistentes com o PostgreSQL. pgsql.max_persistent integer O número máximo de conexões persistentes com PostgreSQL por processo. pgsql.max_links integer O número máximo de conexões PostgreSQL por processo, incluindo as persistentes. Maurício de Castro PHP com PostgreSQL 5

6 Como usar e algumas dicas Atenção Usar o módulo PostgreSQL com o PHP não é recomendado devido a um bug no código de manipulação de notificações. Use o ou superior. Atenção Os nomes das funções PostgreSQL serão alterados na versão para confirmar os padrões de programação atuais. A maioria dos novos nomes terão sublinhados (underscore) adicionais, por exemplo, pg_lo_open(). Algumas funções foram renomeadas para uma maior consistência, por exemplo, pg_exec() mudou para pg_query(). Os nomes antigos podem ser usados na e em algumas poucas outras versões após esta, mas eles serão removidos futuramente. Tabela 2. Nomes de funções alterados pg_exec() pg_query() pg_getlastoid() pg_last_oid() pg_cmdtuples() pg_affected_rows() pg_numrows() pg_num_rows() pg_numfields() pg_num_fields() pg_fieldname() pg_field_name() pg_fieldsize() pg_field_size() pg_fieldnum() pg_field_num() pg_fieldprtlen() pg_field_prtlen() pg_fieldisnull() pg_field_is_null() pg_freeresult() pg_free_result() pg_result() pg_fetch_result() pg_loreadall() pg_lo_read_all() pg_locreate() pg_lo_create() pg_lounlink() pg_lo_unlink() pg_loopen() pg_lo_unlink() pg_loclose() pg_lo_close() pg_loread() pg_lo_read() pg_lowrite() pg_lo_write() pg_loimport() pg_lo_import() pg_loexport() pg_lo_export() Maurício de Castro PHP com PostgreSQL 6

7 A antiga sintaxe pg_connect()/pg_pconnect() ficará obsoleta para suportar conexões assíncronas no futuro. Por favor, use a string de conexão para pg_connect() e pg_pconnect(). Nem todas as funções são suportadas por todas as compilações. Isso vai depender da versão da libpq (A interface cliente em C para PostgreSQL) e como esta foi compilada. Se há alguma função ausente, é porque a libpq não suporta a característica exigida por esta função. Também é importante que você use uma versão da libpq mais nova do que a que o servidor exige. Se você usar uma versão mais antiga do que a que o servidor espera, você poderá ter problemas. Desde a versão 6.3 (03/02/1998), o PostgreSQL usa sockets de domínio unix por padrão. A porta TCP não ficará aberta por padrão. Uma tabela é mostrada abaixo descrevendo essas novas possibilidades de conexão. Este socket será encontrado em /tmp/.s.pgsql Esta opção pode ser habilitada com o parâmetro '-i' para o postmaster e seu significado é: "escute em sockets TCP/IP assim como em sockets de domínio Unix". Tabela 3. Postmaster e PHP Postmaster PHP Status postmaster & pg_connect("dbname=mydbname"); OK postmaster -i & pg_connect("dbname=mydbname"); OK Unable to connect to PostgreSQL server: connectdb() failed: Is the postmaster & pg_connect("host=localhost postmaster running and dbname=mydbname"); accepting TCP/IP (with -i) connection at 'localhost' on port '5432'? in /path/to/file.php on line 20. postmaster -i & pg_connect("host=localhost dbname=mydbname"); OK Maurício de Castro PHP com PostgreSQL 7

8 Uma conexão com o servidor PostgreSQL pode ser estabelecida com os seguintes pares de valores definidos na string de comando: $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. Variáveis de ambiente afetam o comportamento do servidor/cliente PostgreSQL. Por exemplo, o módulo PostgreSQL irá procurar pela variável de ambiente PGHOST quando o nome de host é omitido na string de conexão. As variáveis de ambiente suportadas variam de versão para versão. Vide o Manual de Programador do PostgreSQL (Programmer s Manual, na seção libpq - Enviroment Variables) para maiores detalhes. Certifique-se que você definiu as variáveis de ambiente para o usuário apropriado. Use $_ENV ou getenv() para verificar se as variáveis de ambiente estão disponíveis para o processo atual. Exemplo 1. Definindo os parâmetros padrão PGHOST=psgql.example.com PGPORT=7890 PGDATABASE=web-system PGUSER=web-user PGPASSWORD=secret PGDATESTYLE=ISO PGTZ=JST PGCLIENTENCODING=EUC-JP export PGHOST PGPORT PGDATABASE PGUSER PGPASSWORD PGDATESTYLE PGTZ PGCLIENTENCODING Constantes Predefinidas As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução. PGSQL_ASSOC (integer) PGSQL_NUM (integer) PGSQL_BOTH (integer) Maurício de Castro PHP com PostgreSQL 8

9 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) Exemplos A partir do PostgreSQL 7.1.0, você pode armazenar até 1GB dentro de um campo do tipo texto. Em versões mais antigas, isto era limitado ao tamanho do bloco (o padrão era 8KB e o máximo era 32KB, definido em tempo de compilação). Para usar a interface de objetos grandes (large objects), é exigido que se encapsule as funções de objetos grandes em um bloco de transação. Um bloco de transação inicia-se com a declaração SQL BEGIN e, se a transação for válida, termina com COMMIT ou END. Se a transação falhar, ela deve ser fechada com ROLLBACK ou ABORT. Exemplo 2. Usando Objetos Grandes (large objects) Maurício de Castro PHP com PostgreSQL 9

10 <?php $database = pg_connect ("dbname=jacarta"); pg_query ($database, "begin"); $oid = pg_lo_create ($database); echo "$oid\n"; $handle = pg_lo_open ($database, $oid, "w"); echo "$handle\n"; pg_lo_write ($handle, "large object data"); pg_lo_close ($handle); pg_query ($database, "commit");?> objeto grande. Você não deve fechar a conexão com o servidor PostgreSQL antes de fechar o Índice pg_affected_rows -- Retorna o número de registros afetados (linhas) pg_cancel_query -- Cancela uma consulta (query) assíncrona pg_client_encoding -- Retorna a codificação do cliente pg_close -- Fecha uma conexão PostgreSQL pg_connect -- Abre uma conexão PostgreSQL pg_connection_busy -- Verifica se a conexão está ocupada ou não pg_connection_reset -- Reinicia uma conexão (reconecta) pg_connection_status -- Retorna o status da conexão pg_convert -- Converte os valores de um array associativo em uma declaração SQL apropriada. pg_copy_from -- Insere registros em uma tabela a partir de um array pg_copy_to -- Copia uma tabela em um array pg_dbname -- Retorna o nome do banco de dados pg_delete -- Remove registros. pg_end_copy -- Sincroniza com o backend PostgreSQL pg_escape_bytea -- Gera binários para o tipo bytea pg_escape_string -- Gera string para o tipo text/char pg_fetch_all -- Retorna todas as linhas (registros) como um array pg_fetch_array -- Retorna uma linha (registro) como um array pg_fetch_assoc -- Retorna uma linha (registro) como um array pg_fetch_object -- Retorna uma linha (registro) como um objeto pg_fetch_result -- Retorna valores a partir de um recurso (resource) de resultado pg_fetch_row -- Retorna uma linha como um array enumerado pg_field_is_null -- Testa se o campo é NULL pg_field_name -- Retorna o nome de um campo pg_field_num -- Retorna o número do campo referido pg_field_prtlen -- Retorna o comprimento impresso pg_field_size -- Retorna o tamanho de armazenamento interno de um campo pg_field_type -- Retorna o nome do tipo para o campo de nome correspondente pg_free_result -- Libera a memória usada pelo resultado pg_get_notify -- Ping database connection pg_get_pid -- Ping database connection pg_get_result -- Retorna o resultado de uma consulta (query) assíncrona pg_host -- Retorna o nome da máquina associada a uma conexão pg_insert -- Insere um array na tabela pg_last_error -- Retorna a string da última mensagem de erro de uma conexão pg_last_notice -- Retorna a última notificação do servidor PostgreSQL Maurício de Castro PHP com PostgreSQL 10

11 pg_last_oid -- Retorna o último oid do objeto pg_lo_close -- Fecha um objeto grande (large object) pg_lo_create -- Cria um objeto grande (large object) pg_lo_export -- Exporta um objeto grande (large object) para um arquivo pg_lo_import -- Importa um objeto grande (large object) a partir de um arquivo pg_lo_open -- Abre um objeto grande (large object) pg_lo_read_all -- Lê um objeto grande (large object) inteiro e o envia diretamente para o navegador pg_lo_read -- Lê um objeto grande (large object) pg_lo_seek -- Procura uma posição em um objeto grande (large object) pg_lo_tell -- Retorna a posição atual de um objeto grande (large object) pg_lo_unlink -- Remove um objeto grande (large object) pg_lo_write -- Escreve em um objeto grande (large object) pg_metadata -- Retorna os metadados da tabela. pg_num_fields -- Retorna o número de campos pg_num_rows -- Retorna o número de linhas pg_options -- Retorna as opções associadas com a conexão pg_pconnect -- Abre uma conexão PostgreSQL persistente pg_ping -- Faz um ping na conexão com o banco de dados pg_port -- Retorna o número da porta associada com a conexão. pg_put_line -- Envia uma string terminada em NULL para o backend PostgreSQL pg_query -- Executa uma consulta (query) pg_result_error -- Retorna a mensagem de erro associada a um resultado pg_result_seek -- Altera a posição do ponteiro interno de um recurso (resource) de resultado pg_result_status -- Retorna o status do resultado da consulta (query) pg_select -- Seleciona registros. pg_send_query -- Envia uma consulta (query) assincrona pg_set_client_encoding -- Define a codificação do cliente pg_trace -- Habilita rastreamento em uma conexão PostgreSQL pg_tty -- Retorna o nome da tty associada com a conexão pg_unescape_bytea -- Faz escape binário para o tipo bytea pg_untrace -- Desabilita o rastreamento de uma conexão PostgreSQL pg_update -- Atualiza uma tabela. Maurício de Castro PHP com PostgreSQL 11

12 pg_affected_rows pg_affected_rows -- Retorna o número de registros afetados (linhas) int pg_affected_rows ( resource result) pg_affected_rows() retorna o número de linhas (instâncias/registros/linhas) afetados por consultas (queries) INSERT, UPDATE e DELETE executados por pg_query(). Se nenhuma linha foi afetada, ela retornará 0. Exemplo 1. pg_affected_rows() <?php $result = pg_query ($conn, "INSERT INTO publisher VALUES ('Author')"); $cmdtuples = pg_affected_rows ($result); echo $cmdtuples. " linhas foram afetadas.";?> Nota: Esta função costumava ser chamada de pg_cmdtuples(). Veja também pg_query() e pg_num_rows(). pg_cancel_query pg_cancel_query -- Cancela uma consulta (query) assíncrona bool pg_cancel_query ( resource connection) pg_cancel_query() cancela uma consulta (query) assíncrona enviada por pg_send_query(). Você não pode cancelar uma consulta executada por pg_query(). Veja também pg_send_query() e pg_connection_busy() Maurício de Castro PHP com PostgreSQL 12

13 pg_client_encoding (PHP 3 CVS only, PHP 4 >= 4.0.3) pg_client_encoding -- Retorna a codificação do cliente string pg_client_encoding ( [resource connection]) pg_client_encoding() retorna a codificação do cliente como uma string. A string de retorno pode ser SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5, WIN1250. Nota: Esta função requer PHP ou maior e PostgreSQL 7.0 ou maior Se a libpq foi compilada sem suporte a codificação multibyte, pg_set_client_encoding() sempre retornará "SQL_ASCII". As codificações suportadas dependem da versão do PostgreSQL. Vide o manual do PostgreSQL para mais detalhes sobre como habilitar o suporte a multibyte e outras codificações. Esta função costumava ser chamada pg_clientencoding(). pg_close Veja também pg_set_client_encoding(). (PHP 3, PHP 4 ) pg_close -- Fecha uma conexão PostgreSQL bool pg_close ( resource connection) pg_close() fecha a conexão não persistente com servidor de banco de dados PostgreSQL associado ao recurso (resource) connection dado. Retorna TRUE em caso de sucesso ou FALSE em falhas. Nota: Normalmente, o uso de pg_close() não é necessário já que conexões não persistentes abertas são automaticamente fechadas ao final do processamento do script. Se existem recursos (resource) de objetos grandes (large objects) abertos na Maurício de Castro PHP com PostgreSQL 13

14 conexão, não feche a conexão antes de fechar todos os recursos relacionados com estes objetos. pg_connect (PHP 3, PHP 4 ) pg_connect -- Abre uma conexão PostgreSQL resource pg_connect ( string connection_string) pg_connect() retorna um recurso (resource) de conexão que é necessário para outras funções para PostgreSQL. pg_connect() abre uma conexão com um servidor de banco de dados PostgreSQL especificado por connection_string. Retorna um recurso (resource) de conexão em caso de sucesso. Retorna FALSE se a conexão não pôde ser estabelecida. connection_string deve ser uma string entre aspas duplas. Exemplo 1. Usando pg_connect <?php $bdcon = pg_connect ("dbname=flavia"); //conecta a um banco de dados chamado "flavia" $bdcon2 = pg_connect ("host=localhost port=5432 dbname=flavia"); // conecta a um banco de dados chamado "flavia" em "localhost" na porta "5432" $bdcon3 = pg_connect ("host=ovelha port=5432 dbname=flavia user=ze password=buu"); //conecta a um banco de dados chamado "flavia" na máquina "ovelha" com um usuário e senha $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 máquina "ovelha" com um usuário e senha?> Os argumentos disponíveis para connection_string incluem host, port, tty, options, dbname, user e password. Se uma segunda chamada é feita para pg_connect() com a mesma connection_string, nenhuma nova conexão será estabelecida, ao invés disso, o recurso (resource) de conexão da conexão que já está aberta será retornado. Você pode ter multiplas conexões para o mesmo banco de dados se você usar diferentes strings de conexão. Maurício de Castro PHP com PostgreSQL 14

15 A sintaxe antiga com parâmetros múltiplos $con = pg_connect ("host", "port", "options", "tty", "dbname") se tornou obsoleta. Veja também pg_pconnect(), pg_close(), pg_host(), pg_port(), pg_tty(), pg_options() e pg_dbname(). pg_connection_busy pg_connection_busy -- Verifica se a conexão está ocupada ou não bool pg_connection_busy ( resource connection) pg_connection_busy() retorna TRUE se a conexão está ocupada. Se estiver ocupada, significa que uma consulta (query) anterior ainda está sendo executada. Se pg_get_result() for chamada, será bloqueada. Veja também pg_connection_status() e pg_get_result() pg_connection_reset pg_connection_reset -- Reinicia uma conexão (reconecta) bool pg_connection_reset ( resource connection) pg_connection_reset() reinicia uma conexão. É útil para recuperação de erros. Retorna TRUE em caso de sucesso ou FALSE em falhas. Veja também pg_connect(), pg_pconnect() e pg_connection_status() Maurício de Castro PHP com PostgreSQL 15

16 pg_connection_status pg_connection_status -- Retorna o status da conexão int pg_connection_status ( resource connection) pg_connection_status() retorna o status da conexão. Os status possíveis são PGSQL_CONNECTION_OK e PGSQL_CONNECTION_BAD. Veja também pg_connection_busy(). pg_convert (PHP 4 >= 4.3.0) pg_convert -- Converte os valores de um array associativo em uma declaração SQL apropriada. array pg_convert ( resource connection, string table_name, array assoc_array [, int options]) pg_convert() checa e converte assoc_array em uma declaração SQL apropriada. Nota: Esta função é experimental. Veja também pg_metadata() Maurício de Castro PHP com PostgreSQL 16

17 pg_copy_from pg_copy_from -- Insere registros em uma tabela a partir de um array bool pg_copy_from ( resource connection, string table_name, array rows [, string delimiter [, string null_as]]) pg_copy_from() insere registros em uma tabela a partir de rows. Usa o comando interno COPY FROM para inserir registros. Retorna TRUE em caso de sucesso ou FALSE em falhas. Veja também pg_copy_to() pg_copy_to pg_copy_to -- Copia uma tabela em um array int pg_copy_to ( resource connection, string table_name [, string delimiter [, string null_as]]) pg_copy_to() copia uma tabela em um array. Utiliza internamente o comando SQL COPY TO para inserir os registros. Seu retorno é o array resultante. Caso haja falhas, FALSE é retornado. Veja também pg_copy_from() Maurício de Castro PHP com PostgreSQL 17

18 pg_dbname (PHP 3, PHP 4 ) pg_dbname -- Retorna o nome do banco de dados string pg_dbname ( resource connection) pg_dbname() retorna o nome do banco de dados para um dado recurso (resource) de conexão connection. Retorna FALSE, se connection não é um recurso de conexão PostgreSQL válido. pg_delete (PHP 4 >= 4.3.0) pg_delete -- Remove registros. options]) long pg_delete ( resource connection, string table_name, array assoc_array [, int pg_delete() remove registros que seguem a condição especificada por assoc_array que tem o formato campo => valor. Se options for especificado, pg_convert() é aplicada a assoc_array com a opção especificada. Exemplo 1. pg_delete <?php $db = pg_connect ('dbname=flavia'); // Isto é seguro, já que $_POST é convertido automaticamente $res = pg_delete($db, 'post_log', $_POST); if ($res) { echo "Dados de POST foram removidos: $res\n"; } else { echo "O usuário deve ter enviado parâmetros inválidos\n"; }?> Nota: Esta função é experimental. Veja também pg_convert() Maurício de Castro PHP com PostgreSQL 18

19 pg_end_copy (PHP 4 >= 4.0.3) pg_end_copy -- Sincroniza com o backend PostgreSQL bool pg_end_copy ( [resource connection]) pg_end_copy() sincroniza o frontend PostgreSQL (geralmente um processo de servidor HTTP) com o servidor PostgreSQL depois de fazer uma operação de cópia usando pg_put_line(). pg_end_copy() deve ser chamada, caso contrário o servidor PostgreSQL pode perder a sincronia com o frontend fazendo com que o servidor gere um erro. Retorna TRUE em caso de sucesso ou FALSE em falhas. Para maiores detalhes e um exemplo, veja também pg_put_line(). pg_escape_bytea pg_escape_bytea -- Gera binários para o tipo bytea string pg_escape_bytea ( string data) escapes. pg_escape_bytea() gera uma string do tipo bytea. Retorna uma string com Nota: Quando você usa SELECT bytea type, o PostgreSQL retorna valores de byte octais prefixados por \ (ex.: \032). Usuários devem converter de volta para binários por si mesmos. Esta função exige PostgreSQL 7.2 ou superior. Com PostgreSQL e 7.2.1, o tipo de dados bytea deve ser criado quando você habilita o suporte a multi-byte. Por exemplo, INSERT INTO tabela_teste (imagem) VALUES ('$imagem_escaped'::bytea); PostgreSQL ou superior não precisa de coerção (cast). A exceção é quando a codificação de caracteres do cliente e do backend não combinam, então pode haver erro de fluxo de multi-byte. O usuário deve fazer a coerção (cast) para bytea para evitar este erro. Maurício de Castro PHP com PostgreSQL 19

20 Versões do PostgreSQL mais novas suportarão a função unescape. Suporte para a função interna unescape será adicionada assim que estiver disponível. Veja também pg_escape_string() pg_escape_string pg_escape_string -- Gera string para o tipo text/char string pg_escape_string ( string data) pg_escape_string() gera strings do tipo text/chat. Retorna uma string com escapes para PostgreSQL. O uso desta função é recomendado no lugar de addslashes(). Nota: Esta função exige PostgreSQL 7.2 ou superior. Veja também pg_escape_bytea() pg_fetch_all (PHP 4 >= 4.3.0) pg_fetch_all -- Retorna todas as linhas (registros) como um array array pg_fetch_all ( resource result [, int row]) pg_fetch_all() retorna uma array que contém todas as linhas (registros) do recurso (resourse) de resultado. Retorna FALSE, se não existem mais registros. pg_fetch_result(). Veja também pg_fetch_row(), pg_fetch_array(), pg_fetch_object() e Maurício de Castro PHP com PostgreSQL 20

21 Exemplo 1. Retornando linhas (registros) no PostgreSQL <?php $conn = pg_pconnect ("dbname=escritor"); if (!$conn) { echo "Ocorreu um erro!\n"; exit; } $result = pg_query ($conn, "SELECT * FROM authors"); if (!$result) { echo "Ocorreu um erro!\n"; exit; } $arr = pg_fetch_all ($result, 0, PGSQL_NUM); var_dump($arr);?> pg_fetch_array (PHP 3>= 3.0.1, PHP 4 ) pg_fetch_array -- Retorna uma linha (registro) como um array array pg_fetch_array ( resource result [, int row [, int result_type]]) pg_fetch_array() retorna um array que corresponde à linha (registro). Retorna FALSE se não existem mais linhas. pg_fetch_array() é uma versão extendida de pg_fetch_row(). Além de armazenar os dados em índices numéricos (índice) no array resultante, também armazena os dados em chaves associativas (nome do campo) por padrão. row é o número da linha (registro) a ser recuperado. A primeira linha é 0. result_type é um parâmetro 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 numérico como chave com PGSQL_BOTH. O valor padrão é PGSQL_BOTH. Nota: O parâmetro result_type foi adicionado no PHP 4.0. Maurício de Castro PHP com PostgreSQL 21

22 pg_fetch_array() NÃO é significativamente mais lenta que pg_fetch_row(), e ainda fornece uma significativa facilidade de uso. Veja também pg_fetch_row(), pg_fetch_object() e pg_fetch_result(). Exemplo 1. Retornando linhas (registros) no PostgreSQL <?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";?> Nota: A partir do PHP 4.1.0, row tornou-se opcional. A chamada pg_fetch_array() irá incrementar o contador de linha interno em 1. pg_fetch_assoc (PHP 4 >= 4.3.0) pg_fetch_assoc -- Retorna uma linha (registro) como um array array pg_fetch_assoc ( resource result [, int row]) pg_fetch_assoc() retorna um array associativo que corresponde à linha (registro) recuperado. Retorna FALSE, se não houver mais registros. pg_fetch_assoc() é uma versão extendida de pg_fetch_row(). Além de guardar em índices numéricos, no array resultante, também guarda dados em arrays com chaves associativas (nome do campo) por padrão. row é o número da linha (registro) a ser recuperado. A primeira linha é 0. pg_fetch_assoc() NÃO é significativamente mais lenta que pg_fetch_row(), e Maurício de Castro PHP com PostgreSQL 22

23 ainda fornece uma significativa facilidade de uso. pg_fetch_result(). Veja também pg_fetch_row(), pg_fetch_array(), pg_fetch_object() e Exemplo 1. Retornando linhas (registros) no PostgreSQL <?php $conn = pg_pconnect ("dbname=revista"); if (!$conn) { echo "Ocorreu um erro.\n"; exit; } $result = pg_query ($conn, "SELECT * FROM authors"); if (!$result) { echo "Ocorreu um erro.\n"; exit; } $arr = pg_fetch_assoc ($result, 1, PGSQL_ASSOC); echo $arr["author"]. " <- array\n";?> pg_fetch_object (PHP 3>= 3.0.1, PHP 4 ) pg_fetch_object -- Retorna uma linha (registro) como um objeto objeto pg_fetch_object ( resource result, int row [, int result_type]) pg_fetch_object() retorna um objeto com propriedades que correspondem à linha recuperada. Retorna FALSE se não existem mais linhas ou no caso de erro. pg_fetch_object() é similar a pg_fetch_array(), com uma diferença - um objeto é retornado, ao invés de um array. Indiretamente, isto significa que você pode acessar os dados somente através dos nomes de campos, e não por seus índices (números são nomes inválidos de propriedades). row é o número da linha (registro) a ser recuperada. A primeira linha é 0. Maurício de Castro PHP com PostgreSQL 23

24 Em termos de performance, a função é idêntica a pg_fetch_array(), e quase tão rápida quanto pg_fetch_row() (a diferença é insignificante). Nota: A partir do PHP 4.1.0, row é opcional. A partir do PHP 4.3.0, result_type tem PGSQL_ASSOC como valor padrão, enquanto em outras versões mais antigas o padrão é PGSQL_BOTH. Não há utilidade para a propriedade numérica, já que nomes de propriedades numéricas são inválidas em PHP. O parâmetro result_type deverá ser removido em versões futuras. pg_fetch_result(). Veja também pg_query(), pg_fetch_array(), pg_fetch_row() e Exemplo 1. Postgres fetch object <?php $database = "verlag"; $db_conn = pg_connect ("host=localhost port=5432 dbname=$database"); if (!$db_conn):?> <H1>Falha ao conectar com o banco de dados PostgreSQL <?php echo $database?></h1> <?php exit; endif; $qu = pg_query ($db_conn, "SELECT * FROM verlag ORDER BY autor"); $row = 0; // postgresql precisa de um contador de linha, outros dbs talvez não precisem while ($data = pg_fetch_object ($qu, $row)) { echo $data->autor." ("; echo $data->jahr."): "; echo $data->titel."<br>"; $row++; }?> <PRE> <?php $fields[] = Array ("autor", "Autor"); $fields[] = Array ("jahr", " Ano"); $fields[] = Array ("titel", " Título"); $row= 0; while ($data = pg_fetch_object ($qu, $row)) { echo " \n"; reset ($fields); while (list (,$item) = each ($fields)): echo $item[1].": ".$data->$item[0]."\n"; endwhile; $row++; } echo " \n";?> </PRE> <?php pg_free_result ($qu); pg_close ($db_conn);?> Maurício de Castro PHP com PostgreSQL 24

25 Nota: A partir do PHP 4.1.0, row tornou-se opcional. Ao chamar pg_fetch_object() o contador de linhas interno será acrescentado de 1. pg_fetch_result pg_fetch_result -- Retorna valores a partir de um recurso (resource) de resultado misto pg_fetch_result ( resource result, int row, mixed field) pg_fetch_result() retorna valores a partir de um recurso (resource) de resultado result criado por pg_query(). row é um inteiro. field é um nome de campo (string) ou um índice de campo (inteiro). row e field especificam que célula da tabela deve ser recuperada. A numeração de linhas começa de 0. Ao invés de nomear o campo, você pode usar o índice numérico de campo sem aspas. Índices de campo iniciam-se em 0. PostgreSQL tem muitos tipos internos mas apenas os tipos básicos são suportados. Todas as formas de tipo integer são retornadas como valores integer. Todas as formas de tipos reais (ponto flutuante) são retornados como valores float. Boolean é retornado como "t" ou "f". Todos os outros tipos, incluindo arrays, são retornados como strings formatadas na mesma maneira padrão que o PostgreSQL retornaria com o programa psql. pg_fetch_row (PHP 3>= 3.0.1, PHP 4 ) pg_fetch_row -- Retorna uma linha como um array enumerado array pg_fetch_row ( resource result, int row) pg_fetch_row() retorna uma linha de dados a partir do resultado associado com o recurso (resource) de resultado result. A linha (registro) é recuperada como um array. Cada coluna do resultado é armazenada em um índice do array, iniciando-se no índice 0. Maurício de Castro PHP com PostgreSQL 25

Curso de PHP. FATEC - Jundiaí

Curso de PHP. FATEC - Jundiaí Curso de PHP FATEC - Jundiaí Índices das Funções de acesso ao PostgreSQL pg_affected_rows -> > Retna o número n de registros afetados (linhas) pg_cancel_query -> > Cancela uma consulta (query( query) )

Leia mais

BANCO DE DADOS WEB. Professor Luciano Roberto Rocha

BANCO DE DADOS WEB. Professor Luciano Roberto Rocha BANCO DE DADOS WEB 1 CONECTANDO-SE AO MYSQL VIA PHP Professor Luciano Roberto Rocha Como conectar MySQL via PHP 2 O MySQL é mais popular SGBD entre os desenvolvedores PHP. Existem várias funções do PHP

Leia mais

Treinamento em PHP. Aula 7. Ari Stopassola Junior stopassola@acimainteractive.com

Treinamento em PHP. Aula 7. Ari Stopassola Junior stopassola@acimainteractive.com Treinamento em PHP Aula 7 Ari Stopassola Junior stopassola@acimainteractive.com Banco de Dados Robustes no armazenamento Segurança, velocidade e facilidade na manipulação dos dados Controle e escalabilidade

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 2

PHP INTEGRAÇÃO COM MYSQL PARTE 2 ABRIR CONEXÃO PHP INTEGRAÇÃO COM MYSQL PARTE 2 Professor: Leonardo Pereira Email: leongamerti@gmail.com Facebook: leongamerti Material de Estudo: http://www.leonti.vv.si Antes de podermos acessar informações

Leia mais

Introdução ao PHP. Prof. Késsia Marchi

Introdução ao PHP. Prof. Késsia Marchi Introdução ao PHP Prof. Késsia Marchi PHP Originalmente PHP era um assíncrono para Personal Home Page. De acordo com convenções para atribuições de nomes recursivas do GNU foi alterado para PHP Hypertext

Leia mais

Oracle PL/SQL Overview

Oracle PL/SQL Overview Faculdades Network Oracle PL/SQL Overview Prof. Edinelson PL/SQL Linguagem de Programação Procedural Language / Structured Query Language Une o estilo modular de linguagens de programação à versatilidade

Leia mais

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo: Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

Leia mais

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza PHP e Banco de Dados progweb2@thiagomiranda.net Conteúdos Os materiais de aula, apostilas e outras informações estarão disponíveis em: www.thiagomiranda.net PHP e Banco de Dados É praticamente impossível

Leia mais

Iniciando o MySQL Query Brower

Iniciando o MySQL Query Brower MySQL Query Brower O MySQL Query Browser é uma ferramenta gráfica fornecida pela MySQL AB para criar, executar e otimizar solicitações SQL em um ambiente gráfico. Assim como o MySQL Administrator foi criado

Leia mais

13 Conectando PHP com MySQL 13.1 Introdução

13 Conectando PHP com MySQL 13.1 Introdução 13 Conectando PHP com MySQL 13.1 Introdução Agora que você já tem uma idéia básica de comandos MySQL, poderemos ver como a linguagem PHP pode interagir com este banco de dados através de inúmeras funções.

Leia mais

Prof. Carlos Majer Aplicações Corporativas UNICID

Prof. Carlos Majer Aplicações Corporativas UNICID Este material pertence a Carlos A. Majer, Professor da Unidade Curricular: Aplicações Corporativas da Universidade Cidade de São Paulo UNICID Licença de Uso Este trabalho está licenciado sob uma Licença

Leia mais

PostgreSQL e C++ (libpq)

PostgreSQL e C++ (libpq) PostgreSQL e C++ (libpq) André Restivo Faculdade de Engenharia da Universidade do Porto April 5, 2013 André Restivo (FEUP) PostgreSQL e C++ (libpq) April 5, 2013 1 / 18 Sumário 1 Introdução 2 Ligação 3

Leia mais

PL/pgSQL por Diversão e Lucro

PL/pgSQL por Diversão e Lucro PL/pgSQL por Diversão e Lucro Roberto Mello 3a. Conferência Brasileira de PostgreSQL - PGCon-BR Campinas - 2009 1 Objetivos Apresentar as partes principais do PL/pgSQL Apresentar casos de uso comum do

Leia mais

Disparando o interpretador

Disparando o interpretador Capítulo 2: Usando o interpretador Python Disparando o interpretador O interpretador é frequentemente instalado como /usr/local/bin/python nas máquinas onde está disponível; adicionando /usr/local/bin

Leia mais

PHP (Seções, Cookies e Banco de Dados)

PHP (Seções, Cookies e Banco de Dados) PHP (Seções, Cookies e Banco de Dados) André Tavares da Silva andre.silva@udesc.br Seções Basicamente, as seções são métodos que preservam determinados dados ativos enquanto o navegador do cliente estiver

Leia mais

FUNCTION ) RETURNS INTEGER AS $$ DECLARE

FUNCTION ) RETURNS INTEGER AS $$ DECLARE PERFORM O comando PERFORM permite a execução de um comando SELECT desprezando o resultado do comando. PERFORM query; A variável especial FOUND é definida como verdadeiro se a instrução produzir pelo menos

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução App de exemplo Implementação do exemplo Testes realizados

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução App de exemplo Implementação do exemplo Testes realizados

Leia mais

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

Kerio Exchange Migration Tool

Kerio Exchange Migration Tool Kerio Exchange Migration Tool Versão: 7.3 2012 Kerio Technologies, Inc. Todos os direitos reservados. 1 Introdução Documento fornece orientações para a migração de contas de usuário e as pastas públicas

Leia mais

Linguagem de Programação III Aula 2 Revisão Parte II

Linguagem de Programação III Aula 2 Revisão Parte II Linguagem de Programação III Aula 2 Revisão Parte II Prof. Moser Fagundes Curso Técnico em Informática (Modalidade Integrada) Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas Revisão de PHP

Leia mais

JDBC Acessando Banco de Dados

JDBC Acessando Banco de Dados Acessando Banco de Dados Objetivos Entender o que são Drivers. Diferenciar ODBC, JDBC e DRIVERMANAGER. Desenvolver uma aplicação Java para conexão com Banco de Dados. Criar um objeto a partir da classe

Leia mais

MIOLO 2.0 DAO. Ely Edison Matos ely.matos@ufjf.edu.br

MIOLO 2.0 DAO. Ely Edison Matos ely.matos@ufjf.edu.br MIOLO 2.0 DAO Ely Edison Matos ely.matos@ufjf.edu.br versão do documento: 1.3 16/05/2005 Índice DAO - Camada de abstração de acesso a dados...3 Configuração...3 Classes DAO...3 classe Database...5 classe

Leia mais

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127 Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

Leia mais

APOSTILA PHP PARTE 1

APOSTILA PHP PARTE 1 APOSTILA PHP PARTE 1 1. Introdução O que é PHP? PHP significa: PHP Hypertext Preprocessor. Realmente, o produto foi originalmente chamado de Personal Home Page Tools ; mas como se expandiu em escopo, um

Leia mais

COMPONENTES DA BIBLIOTECA ZEOSLIB. Paleta Zeos Access no Lazarus. TZConnection

COMPONENTES DA BIBLIOTECA ZEOSLIB. Paleta Zeos Access no Lazarus. TZConnection COMPONENTES DA BIBLIOTECA ZEOSLIB Paleta Zeos Access no Lazarus TZConnection É o componente que estabelece a conexão com o banco de dados e possui a capacidade de manipular ou controlar transações. Todo

Leia mais

Python Acessando o Banco de Dados MySQL

Python Acessando o Banco de Dados MySQL Python Acessando o Banco de Dados MySQL ANTONIO SÉRGIO NOGUEIRA PRESIDENTE PRUDENTE SP 2009 1 Sumário 1. Introdução...3 2. Interface MySQL...3 3.Instalando o MySQLdb...3 4.Verificando se o MySQL está instalado...4

Leia mais

Programação Web Prof. Wladimir

Programação Web Prof. Wladimir Programação Web Prof. Wladimir Linguagem PHP Mail() e BD @wre2008 1 Sumário Função mail(); Conexão com Banco de dados; @wre2008 2 Envio de e-mail O comando mail(): é a função do PHP para envio de e-mail.

Leia mais

UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET. Programação para Internet I

UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET. Programação para Internet I UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET Programação para Internet I Aula 10 PHP: Trabalhando com Banco de Dados leticia@cafw.ufsm.br Acessando

Leia mais

Criação de uma base de dados em MS SQL Server e acesso com VB 6. Professor Sérgio Furgeri

Criação de uma base de dados em MS SQL Server e acesso com VB 6. Professor Sérgio Furgeri OBJETIVOS DA AULA: Criação de uma base de dados em MS SQL Server e acesso com VB 6. Fazer uma breve introdução a respeito do MS SQL Server 7.0; Criar uma pequena base de dados no MS SQL Server 7.0; Elaborar

Leia mais

INTRODUÇÃO. No entanto, o que pode ser considerado um produto (resultado) da criação de BDs?

INTRODUÇÃO. No entanto, o que pode ser considerado um produto (resultado) da criação de BDs? BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br INTRODUÇÃO Um Banco

Leia mais

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL Laboratório de Banco de Dados Prof. Luiz Vivacqua PL/pgSQL A Linguagem de programação do PostgreSQL 1) Visão Geral A PL/pgSQL é uma linguagem de programação procedural para o Sistema Gerenciador de Banco

Leia mais

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010 BANCO DE DADOS: SQL UERN - Universidade do Estado do Rio Grande do Norte. Departamento de Ciências da Computação. 27 de janeiro de 2010 índice 1 Introdução 2 3 Introdução SQL - Structured Query Language

Leia mais

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger A tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco

Leia mais

Tutorial de Metastorage

Tutorial de Metastorage Tutorial de Metastorage Desenvolvimento de aplicações com banco de dados em PHP usando a ferramenta Metastorage http://www.manuellemos.net/ Manuel Lemos mlemos@acm.org Novembro de 2005 Resumo Introdução

Leia mais

Persistência de Dados

Persistência de Dados Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD

Leia mais

PHP() é uma linguagem de integração de servidor que permite a criação de paginas dinâmicas. Como todas

PHP() é uma linguagem de integração de servidor que permite a criação de paginas dinâmicas. Como todas O que é PHP? Acrônimo de PHP: Hipertext Language PostProcessor Inicialmente escrita para o desenvolvimento de aplicações Web Facilidade para iniciantes e recursos poderosos para programadores profissionais

Leia mais

Bool setcookie (string nome [, string valor [, int validade [, string caminho [, string dominio [, int seguro]]]]] )

Bool setcookie (string nome [, string valor [, int validade [, string caminho [, string dominio [, int seguro]]]]] ) Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

Leia mais

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas;

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas; Conjunto de informações relacionadas entre si; Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas; Conjunto de Tabelas onde cada linha é um vetor de dados específico;

Leia mais

Os comandos SQL utilizados nas aulas práticas e mostrados aqui foram feitos num interpretador de comandos: psql

Os comandos SQL utilizados nas aulas práticas e mostrados aqui foram feitos num interpretador de comandos: psql Bases de Dados PostgreSQL e Php Transacções Joins, agregações, vistas P. Serendero, 2011 1 PostgreSQLe Php: transacções Os comandos SQL utilizados nas aulas práticas e mostrados aqui foram feitos num interpretador

Leia mais

Instituto Federal do Sertão-PE. Curso de PHP. Professor: Felipe Correia

Instituto Federal do Sertão-PE. Curso de PHP. Professor: Felipe Correia Instituto Federal do Sertão-PE Curso de PHP Professor: Felipe Correia Conteúdo Parte I Parte II Introdução Funções de strings Instalação Constantes Sintaxe Operadores Variáveis if else elseif Echo/Print

Leia mais

Manipulando Strings no VBA (Replace, Mid e InStr)

Manipulando Strings no VBA (Replace, Mid e InStr) Manipulando Strings no VBA (Replace, Mid e InStr) por Eduardo Vieira Machado (Good Guy) Hoje gostaria de tratar de um assunto bastante atraente no Access e que é muito trabalhado nas empresas - a manipulação

Leia mais

TRANSAÇÕES. Considerando que estes comandos fazem parte de uma TRANSAÇÃO (veremos como indicar isso):

TRANSAÇÕES. Considerando que estes comandos fazem parte de uma TRANSAÇÃO (veremos como indicar isso): TRANSAÇÕES 1. Visão Geral Uma transação é uma unidade lógica de trabalho (processamento) formada por um conjunto de comandos SQL cujo objetivo é preservar a integridade e a consistência dos dados. Ao final

Leia mais

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Memória Flash Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix Ingress SQL

Leia mais

Entendendo Injeção de SQL

Entendendo Injeção de SQL Entendendo Injeção de SQL Autor K4m1k451 < k4m1k451@gmail.com bere_bad@hotmail.com > 18/05/2009 Sumário: ---[ 0x00 Introdução... 4 ---[ 0x01 Desmistificando as single quotes... 4 ---[ 0x02 Injetando...

Leia mais

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON) Márcio Koch 1 Currículo Formado na FURB em Ciência da Computação Pós graduado em Tecnologias para o desenvolvimento de aplicações web Mestrando em Computação Gráfica na UDESC Arquiteto de software na Senior

Leia mais

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) 8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) Nos itens anteriores vimos transações do tipo explícitas, ou seja, aquelas que iniciam com BEGIN TRANSACTION. As outras

Leia mais

INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++

INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++ UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: Bacharelado em Ciências e Tecnologia INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++ Profª ª Danielle Casillo COMPILADORES Toda linguagem de programação

Leia mais

Manual de Instalação do SGA Livre

Manual de Instalação do SGA Livre Manual de Instalação do SGA Livre Retornar à Página Inicial Índice Introdução Instalação do Servidor Web e Banco de Dados Instalação do Controlador de Painéis Configuração do Cron Instalação do Painel

Leia mais

SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela

SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela Certamente você já ouviu falar muito sobre triggers. Mas o quê são triggers? Quando e como utilizá-las?

Leia mais

FAPLAN - Faculdade Anhanguera Passo Fundo Gestão da Tecnologia da Informação Banco de Dados II Prof. Eder Pazinatto Stored Procedures Procedimento armazenados dentro do banco de dados Um Stored Procedure

Leia mais

JSP - ORIENTADO A OBJETOS

JSP - ORIENTADO A OBJETOS JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...

Leia mais

CONCORRÊNCIA. 1. Introdução. Recursos exclusivos. Não necessita controle. Abundância de recursos compartilhados. Controle necessário mas mínimo

CONCORRÊNCIA. 1. Introdução. Recursos exclusivos. Não necessita controle. Abundância de recursos compartilhados. Controle necessário mas mínimo CONCORRÊNCIA 1. Introdução Recursos exclusivos Não necessita controle Abundância de recursos compartilhados Controle necessário mas mínimo Harmonia, provavelmente não haverá conflito Recursos disputados

Leia mais

Arquitetura de BDs Distribuídos. Victor Amorim - vhca Pedro Melo pam2

Arquitetura de BDs Distribuídos. Victor Amorim - vhca Pedro Melo pam2 Victor Amorim - vhca Pedro Melo pam2 Arquitetura de BDs Distribuídos Sistemas de bds distribuídos permitem que aplicações acessem dados de bds locais ou remotos. Podem ser Homogêneos ou Heterogêneos: Homogêneos

Leia mais

PostgreSQL o SGBD das 1001 linguagens Diogo Biazus diogob@gmail.com

PostgreSQL o SGBD das 1001 linguagens Diogo Biazus diogob@gmail.com PostgreSQL o SGBD das 1001 linguagens Diogo Biazus diogob@gmail.com Um dos grandes diferenciais do PostgreSQL em relação à maioria dos outros sistemas de bancos de dados é a presença de diversas linguagens

Leia mais

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

PROCEDIMENTOS ARMAZENADOS (Stored Procedures) PROCEDIMENTOS ARMAZENADOS (Stored Procedures) 1. Introdução Stored Procedure é um conjunto de comandos, ao qual é atribuído um nome. Este conjunto fica armazenado no Banco de Dados e pode ser chamado a

Leia mais

MySQL. Prof. César Melo. com a ajuda de vários

MySQL. Prof. César Melo. com a ajuda de vários MySQL Prof. César Melo com a ajuda de vários Banco de dados e Sistema de gerenciamento; Um banco de dados é uma coleção de dados. Em um banco de dados relacional, os dados são organizados em tabelas. matricula

Leia mais

ADMINISTRAÇÃO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS ARTEFATO 02 AT02 Diversos I 1 Indice ESQUEMAS NO BANCO DE DADOS... 3 CRIANDO SCHEMA... 3 CRIANDO TABELA EM DETERMINADO ESQUEMA... 4 NOÇÕES BÁSICAS SOBRE CRIAÇÃO E MODIFICAÇÃO

Leia mais

Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I

Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I José Alberto F. Rodrigues Filho beto@beto.pro.br Firebird É a primeira geração, descendente do

Leia mais

Desenvolvimento de Aplicações para Internet Aula 9

Desenvolvimento de Aplicações para Internet Aula 9 Desenvolvimento de Aplicações para Internet Aula 9 Celso Olivete Júnior olivete@fct.unesp.br Na aula de hoje PDO PHP Data Object 2 PDO PDO é uma extensão que fornece uma interface padronizada para trabalhar

Leia mais

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. JDBC - Java Database Connectivity A,L,F,M

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. JDBC - Java Database Connectivity A,L,F,M JAVA Marcio de Carvalho Victorino 1 JDBC - Java Database Connectivity 2 1 JDBC conceito JDBC é uma API (Application Program Interface) para acesso a SGBD s (Sistemas Gerenciadores de Banco de Dados) relacionais

Leia mais

FileMaker 13. Guia de ODBC e JDBC

FileMaker 13. Guia de ODBC e JDBC FileMaker 13 Guia de ODBC e JDBC 2004 2013 FileMaker Inc. Todos os direitos reservados. FileMaker Inc. 5201 Patrick Henry Drive Santa Clara, Califórnia 95054 FileMaker e Bento são marcas comerciais da

Leia mais

2 echo "PHP e outros.";

2 echo PHP e outros.; PHP (Hypertext Preprocessor) Antes de qualquer coisa, precisamos entender o que é o PHP: O PHP(Hypertext Preprocessor) é uma linguagem interpretada gratuita, usada originalmente apenas para o desenvolvimento

Leia mais

Autor: Ricardo Francisco Minzé Júnior - ricardominze@yahoo.com.br Desenvolvendo aplicações em camadas com PHP 5.

Autor: Ricardo Francisco Minzé Júnior - ricardominze@yahoo.com.br Desenvolvendo aplicações em camadas com PHP 5. Desenvolvendo aplicações em camadas com PHP 5. Talvez a primeira vista você ache estranha a palavra Camada em programação, mas o que vem a ser Camada? Segundo o dicionário: Camada 1 - Qualquer matéria

Leia mais

Introdução ao SQL. O que é SQL?

Introdução ao SQL. O que é SQL? Introdução ao SQL 1 O que é SQL? Inicialmente chamada de Sequel, SQL (Structured Query Language), é a linguagem padrão utilizada para comunicar-se com um banco de dados relacional. A versão original foi

Leia mais

PostgreSQL. www.postgresql.org. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br

PostgreSQL. www.postgresql.org. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br PostgreSQL www.postgresql.org André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br Características Licença BSD (aberto, permite uso comercial) Multi-plataforma (Unix, GNU/Linux,

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 5 SELECT * FROM Minha_memoria Revisando Sintaxes SQL e Criando programa de Pesquisa Ano:

Leia mais

Tradutor: Douglas Soares de Andrade dsa em unilestemg ponto br Site Original: http://www.devshed.com/c/a/python/mysql-connectivity-with-python/

Tradutor: Douglas Soares de Andrade dsa em unilestemg ponto br Site Original: http://www.devshed.com/c/a/python/mysql-connectivity-with-python/ Conectividade do MySQL com Python Tradutor: Douglas Soares de Andrade dsa em unilestemg ponto br Site Original: http://www.devshed.com/c/a/python/mysql-connectivity-with-python/ Uma das coisas mais legais

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2012 Edição 7 Listando e Gravando Listando itens em ComboBox e gravando os dados no

Leia mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Conceitos de Linguagens de Programação Aula 07 Nomes, Vinculações, Escopos e Tipos de Dados Edirlei Soares de Lima Introdução Linguagens de programação imperativas são abstrações

Leia mais

Manual de Instalação. Instalação via apt-get

Manual de Instalação. Instalação via apt-get Manual de Instalação Instalação via apt-get Índice de capítulos 1 - Pré-requisitos para instalação......................................... 01 2 - Instalando o SIGA-ADM.................................................

Leia mais

A API em C do MySQL. Variáveis em C Funções em C Ponteiros em C

A API em C do MySQL. Variáveis em C Funções em C Ponteiros em C LinuxFocus article number 304 http://linuxfocus.org A API em C do MySQL by Özcan Güngör About the author: Eu uso o Linux desde 1997. Liberdade, flexibilidade e código aberto.

Leia mais

Sumário. Capítulo 1 O que é o PHP?... 19. Capítulo 2 Instalação do PHP... 23. Capítulo 3 Noções básicas de programação... 25

Sumário. Capítulo 1 O que é o PHP?... 19. Capítulo 2 Instalação do PHP... 23. Capítulo 3 Noções básicas de programação... 25 9 Sobre o autor... 8 Introdução... 15 Capítulo 1 O que é o PHP?... 19 Características do PHP...20 Gratuito e com código aberto...20 Embutido no HTML...20 Baseado no servidor...21 Bancos de dados...22 Portabilidade...22

Leia mais

Prof. Omero, pág. 63. Banco de Dados InterBase.

Prof. Omero, pág. 63. Banco de Dados InterBase. Prof. Omero, pág. 63 O que é o InterBase? O InterBase é um SGBDR - Sistema Gerenciador de Banco de Dados Cliente/Servidor Relacional 1 que está baseado no padrão SQL ANSI-9, de alta performance, independente

Leia mais

PHP Seguro Ernani Azevedo (PROCERGS DRE/ARS Unix)

PHP Seguro Ernani Azevedo (PROCERGS DRE/ARS Unix) PHP Seguro Ernani Azevedo (PROCERGS DRE/ARS Unix) 1 Introdução A linguagem PHP, por ser muito flexível, normalmente é utilizada de forma insegura, tanto pelo desenvolvedor quanto pelos administradores

Leia mais

Trabalhando com MySQL: Uma Introdução

Trabalhando com MySQL: Uma Introdução Trabalhando com MySQL: Uma Introdução 1. A linguagem PHP A linguagem PHP é uma linguagem de programação criada especialmente para o uso em páginas Web. Mas nem por isso ela não pode deixar de ser usada

Leia mais

SQL Gatilhos (Triggers)

SQL Gatilhos (Triggers) SQL Gatilhos (Triggers) Laboratório de Bases de Dados Gatilho (trigger) Bloco PL/SQL que é disparado de forma automática e implícita sempre que ocorrer um evento associado a uma tabela INSERT UPDATE DELETE

Leia mais

INTRODUÇÃO À LINGUAGEM PHP CESAR BEZERRA TEIXEIRA,MSC

INTRODUÇÃO À LINGUAGEM PHP CESAR BEZERRA TEIXEIRA,MSC INTRODUÇÃO À LINGUAGEM PHP CESAR BEZERRA TEIXEIRA,MSC O presente texto não tem a pretensão de ser uma referência na linguagem PHP, a intenção é apresentar uma breve introdução a esta tecnologia e despertar

Leia mais

2.3. PHP Tipos de dados e operadores

2.3. PHP Tipos de dados e operadores Programação para Internet II 2.3. PHP Tipos de dados e operadores Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Tipos de dados Embora não seja necessário declarar os tipos de dados das variáveis,

Leia mais

Manter estatísticas atualizadas é uma das regras de ouro na busca por performance.

Manter estatísticas atualizadas é uma das regras de ouro na busca por performance. Atualização de Estatísticas Um objeto de estatística pode ser atualizado manualmente pelo usuário, através dos comandos SP_UPDATESTATS e/ou UPDATE STATISTICS. Enquanto que a procedure SP_UPDATESTATS atualiza

Leia mais

4 Conversor EDTV Raw. 4.1 Arquitetura

4 Conversor EDTV Raw. 4.1 Arquitetura 4 Conversor EDTV Raw O conversor EDTV Raw é o programa que lê um documento escrito no perfil NCL EDTV e gera um documento Raw equivalente, i.e. que define a mesma apresentação. Este capítulo, apresenta

Leia mais

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL PL/SQL Laboratório de Bases de Dados PL/SQL Program Language SQL linguagem de programação da Oracle que permite processar dados armazenados no banco de dados Exemplos de operações permitidas alterar, remover,

Leia mais

Universidade Federal de Viçosa CPD - Central de Processamento de Dados Divisão de Desenvolvimento de Sistemas

Universidade Federal de Viçosa CPD - Central de Processamento de Dados Divisão de Desenvolvimento de Sistemas Universidade Federal de Viçosa CPD - Central de Processamento de Dados Divisão de Desenvolvimento de Sistemas Manual de padrões e convenções para desenvolvimento de sistemas PHP Versão Conteúdo 1.

Leia mais

Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você

Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você por Cristóferson Guimarães Magalhães Bueno e Odilon Corrêa da Silva 1 O objetivo deste artigo é demonstrar como criar um sistema

Leia mais

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Trabalhando com conexão ao banco de dados MySQL no Lazarus Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 4 O Componente Trabalhando com conexão ao banco de dados MySQL no Lazarus Ano: 03/2011

Leia mais

Considerando-se a especificação de requisitos de um software, é INCORRETO afirmar que esse documento

Considerando-se a especificação de requisitos de um software, é INCORRETO afirmar que esse documento QUESTÕES DE TI QUESTÃO 16 Considerando-se o número de pontos de função para a estimativa do tamanho de um software, é INCORRETO afirmar que, na contagem de pontos, leva-se em consideração A) as compilações

Leia mais

Troubleshooting Versão 1.0

Troubleshooting Versão 1.0 Troubleshooting Versão 1.0 As informações contidas neste documento estão sujeitas a alteração sem notificação prévia. Os dados utilizados nos exemplos contidos neste manual são fictícios. Nenhuma parte

Leia mais

MANUAL DO USUÁRIO DE REDE

MANUAL DO USUÁRIO DE REDE MANUAL DO USUÁRIO DE REDE Armazenar registro de impressão na rede Versão 0 BRA-POR Definições de observações Utilizamos o seguinte ícone neste Manual do Usuário: Observações indicam como você deve reagir

Leia mais

SQL Procedural. Josino Rodrigues Neto josinon@gmail.com

SQL Procedural. Josino Rodrigues Neto josinon@gmail.com SQL Procedural Josino Rodrigues Neto josinon@gmail.com SQL Procedural Agregada em SQL-92 As ferramentas têm nomes para suas linguagens SQL procedurais/embutidas Oracle : PL/SQL Postgres PL/Pgsql SQL Server

Leia mais

Leonardo Gresta Paulino Murta leomurta@gmail.com

Leonardo Gresta Paulino Murta leomurta@gmail.com Leonardo Gresta Paulino Murta leomurta@gmail.com O Que é JDBC? API de acesso a banco de dados relacional do Java Faz uso do driver provido pelo banco de dados Roda SQL (create, insert, update, etc.) no

Leia mais

Introdução ao Sistema. Características

Introdução ao Sistema. Características Introdução ao Sistema O sistema Provinha Brasil foi desenvolvido com o intuito de cadastrar as resposta da avaliação que é sugerida pelo MEC e que possui o mesmo nome do sistema. Após a digitação, os dados

Leia mais

Linguagem de Programação. Introdução ao PHP. Prof Mauricio Lederer Ciência da Computação - UNIANDRADE 1

Linguagem de Programação. Introdução ao PHP. Prof Mauricio Lederer Ciência da Computação - UNIANDRADE 1 Linguagem de Programação Introdução ao PHP 1 O que é PHP? - significa: Hypertext Preprocessor - uma das linguagens mais utilizadas para web - transforma sites estáticos em dinâmicos - atualização de páginas

Leia mais

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO O Driver IGS possui um módulo de configuração que possibilita a comunicação com protocolos proprietários. Trata-se do Driver

Leia mais

NOMES: Leonardo Claro Diego Lage Charles Tancredo Márcio Castro

NOMES: Leonardo Claro Diego Lage Charles Tancredo Márcio Castro NOMES: Leonardo Claro Diego Lage Charles Tancredo Márcio Castro O MySQL Cluster é versão do MySQL adaptada para um ambiente de computação distribuída, provendo alta disponibilidade e alta redundância utilizando

Leia mais

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem. 1 - O que é JAVASCRIPT? É uma linguagem de script orientada a objetos, usada para aumentar a interatividade de páginas Web. O JavaScript foi introduzido pela Netscape em seu navegador 2.0 e posteriormente

Leia mais