PI S2 DSW III DouglasARS: mudanças entre as edições

De IFSC
Ir para navegação Ir para pesquisar
imported>Douglas
imported>Douglas
Linha 149: Linha 149:


;Nova função para conexão: '''mysqli_connect($servidor,$usuario,$senha,$banco)''' | substitui: mysql_connect($servidor,$usuario,$senha) e mysql_select_db($banco, $conecta);
;Nova função para conexão: '''mysqli_connect($servidor,$usuario,$senha,$banco)''' | substitui: mysql_connect($servidor,$usuario,$senha) e mysql_select_db($banco, $conecta);
*Nova função para consulta: '''mysqli_query($conecta,$consulta)''' | substitui: mysql_query($consulta)
;Nova função para consulta: '''mysqli_query($conecta,$consulta)''' | substitui: mysql_query($consulta)
*Nova função para retornar o número de registros (linhas): '''mysqli_num_rows($resultado)''' | substitui: mysql_num_rows($resultado)
;Nova função para retornar o número de registros (linhas): '''mysqli_num_rows($resultado)''' | substitui: mysql_num_rows($resultado)
*Nova função para retornar os dados para um vetor (colunas): '''mysqli_fetch_assoc($resultado)''' | substitui: mysql_fetch_assoc($resultado)
;Nova função para retornar os dados para um vetor (colunas): '''mysqli_fetch_assoc($resultado)''' | substitui: mysql_fetch_assoc($resultado)
*Nova função para fechar o banco de dados: '''mysqli_close($conecta)''' | substitui: mysql_close($conecta)
;Nova função para fechar o banco de dados: '''mysqli_close($conecta)''' | substitui: mysql_close($conecta)


=Caixa de Diálogo=
=Caixa de Diálogo=

Edição das 13h33min de 5 de maio de 2016

Apresentação

Olá Aluno,

...

Dediquem um tempo para seus estudos.

Falta pouco!

Fiquem atentos as postagens no Fórum e participem dos nossos encontros virtuais.

Prof. Douglas A.

Objetivos

  • Como alterar para o conjunto de funções MySQLi para conectar o PHP ao banco de dados MySQL.
  • Aprender a trabalhar com caixa de diálogos.
  • Como criar um Domínio gratuito na Internet.

Conexão PHP-MySQL

Nessa nossa volta ao desenvolvimento do sistema, me deparei com uma recomendação do PHP sobre a substituição do conjunto de funções MySQL por MySQLi, que é uma extensão do PHP feita para aproveitar os recursos mais avançados do banco de dados MySQL. O interessante desse novo conjunto de funções MySQLi é que pode ser usado de forma orientada a objetos.

Para que você possa utilizar as funções MySQLi você precisa do PHP 5 (ou superior) e MySQL 4.1.3 (ou superior). Não se esqueça de antes de testar esses scripts verificar se o MySQLi está habilitado no seu PHP dando uma olhada no phpinfo().

Para testar a versão, basta criar uma página PHP que chame info.php, salvar no diretório padrão do Apache: /var/www/html (para Ubuntu 14). Você pode criar a página (arquivo) com editor de sua preferência, veja o exemplo com o gedit:

$ gedit /var/www/html/info.php &

Digite o seguinte código:

<?php

      phpinfo();

?>

Salve o arquivo, vá no seu navegador e digite:

http://localhost/info.php

Deverá aparecer uma tela como esta:


Info php.png

Figura 1 - Tela resultado da função phpinfo().


Agora vamos aos exemplos de scripts que fazem todas as operações comuns do MySQL, vou preferir aqui mostrar conexões estruturadas, sem usar o recurso de orientação à objetos, vamos fazer isso mostrando parte do código baseado no nosso sistema exemplo.

Conectando ao MySQL

<?php
$servidor = 'localhost';
$usuario = 'root';
$senha = '';
$banco = 'mydb';

// Conecta-se ao banco de dados MySQL
$link = mysqli_connect($servidor,$usuario,$senha,$banco) or die("ERRO: Não foi possível conectar-se ao banco de dados.");

Essa função faz de uma só vez a conexão com o MySQL e já seleciona o banco de dados.


Executando uma consulta SQL

Neste exemplo, vamos mostrar como conectar a um outro banco de dados e fazer o teste recuperando os dados através de um SELECT. Lembrando, se você quiser fazer o teste no seu servidor, é preciso reconfigurar as ligações (servidor, usuario, senha e banco).


<html>
<head>
	<title>Página de testes</title>
	<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>

<b>Página de teste!</b><br><br>

<?php
echo "Teste"."<br>";

$servidor = 'mysql.hostinger.com.br'; // Servidor MySQL
$usuario  = 'u381978428_dars';        // Usuário MySQL
$senha    = 'Jujuba01';       	      // Senha MySQL
$banco    = 'u381978428_exemp';       // Banco de dados MySQL

echo $banco."... ";

$conecta = mysqli_connect($servidor,$usuario,$senha,$banco) or die("ERRO: ".mysqli_error($conecta)); 

echo "conectou. <br><br>";


$consulta = "SELECT * FROM usuarios" or die("ERRO: ".mysqli_error($consulta)); 

echo $consulta."<br>";

if ($resultado = mysqli_query($conecta,$consulta)){

    printf("Select returned %d rows.\n", mysqli_num_rows($resultado));

};

echo "<p>Usuário | Senha <br>";
while($linha = mysqli_fetch_assoc($resultado)){
    echo $linha["usuario"].' | ';
    echo $linha["senha"].'<br>';
}; 

mysqli_close($conecta); // Desconecta o banco de dados

?>
</body>
</html> 
Resultado
http://douglasars.esy.es/teste.php


Página de teste!

Teste
u381978428_exemp... conectou.

SELECT * FROM usuarios
Select returned 2 rows.

Usuário | Senha
adm | 81dc9bdb52d04dc20036dbd8313ed055
douglas | 81dc9bdb52d04dc20036dbd8313ed055


De fato, às modificações do uso da antigas funções (mysql) com as novas (mysqli), não é tão grande. Além desse i ao final da função, em alguns casos existe a unificação das funções, como na mysqli_connect(), que faz a conexão e já seleciona a base de dados. Outra modificação está na função mysqli_query($conecta,$consulta), na verdade essa é apenas uma ligação para a mesma função e passa ser associada a conexão representado pela variável "$conecta". A variável "$consulta" tem o código SQL com o SELECT da tabela. Veja como era e como ficaram as principais funções:


Nova função para conexão
mysqli_connect($servidor,$usuario,$senha,$banco) | substitui: mysql_connect($servidor,$usuario,$senha) e mysql_select_db($banco, $conecta);
Nova função para consulta
mysqli_query($conecta,$consulta) | substitui: mysql_query($consulta)
Nova função para retornar o número de registros (linhas)
mysqli_num_rows($resultado) | substitui: mysql_num_rows($resultado)
Nova função para retornar os dados para um vetor (colunas)
mysqli_fetch_assoc($resultado) | substitui: mysql_fetch_assoc($resultado)
Nova função para fechar o banco de dados
mysqli_close($conecta) | substitui: mysql_close($conecta)

Domínio na Internet

Resumo

Sistema exemplo

Endereço
http://douglasars.esy.es/
Usuário
adm
Senha
1234

Código Fonte

Download
http://douglasars.esy.es/down/exemplo.zip

Organização da Semana 3

Nesta segunda semana [...]

Até lá!

Bons estudos!

Prof. Douglas A.

Referências

[1] Guia prático de MySQLi no PHP: <http://blog.thiagobelem.net/guia-pratico-de-mysqli-no-php>

[2]





<< <> >>

Seções

Alteração de Dados

Recursividade de Páginas

Organização da Semana 2

Nesta primeira semana apresentamos nosso plano de ensino e recomeçamos o desenvolvimento do sistema, explicando sobre como utilizar sessões, para controlar o acesso às páginas, também aprendemos sobre edição dos dados já inseridos. Na próxima semana, vamos dar uma passado sobre o uso de novas funções de conexão do PHP com o banco de dados MySQL. Veremos também como colocar sua aplicação em um domínio gratuito na internet.

Não percam!

Bons estudos!

Prof. Douglas A.

Referências

[1]




<< <> >>