construÇÃo de pÁginas web iii prof. antonio miguel faustini zarth [email protected]

18
CONSTRUÇÃO DE PÁGINAS WEB III Prof. Antonio Miguel Faustini Zarth [email protected]

Upload: maria-do-pilar-cavalheiro-de-paiva

Post on 07-Apr-2016

227 views

Category:

Documents


5 download

TRANSCRIPT

CONSTRUÇÃO DE PÁGINAS WEB III

Prof. Antonio Miguel Faustini [email protected]

PHPConexão com BDs

Preliminares

• O PHP pode se conectar com praticamente todo SGBD popular;

• Para cada um, podem existir uma série de funções associadas como: conexão, consulta, retorno, desconexão...

• Daremos ênfase em conexão ao MySQL com mysqli e PDO

Atenção

• A partir daqui além do Apache e do PHP rodando, você precisará do MySQL instalado em sua máquina.

Antigamente

<?php$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');if (!$link) {    die('Could not connect: ' . mysql_error());}echo 'Connected successfully';mysql_close($link);?>

Conectando Procedural

<?php

$conn=mysqli_connect('localhost','username','password','database');?>

<?php$link = mysqli_connect('localhost', 'user', ‘pass', 'db');

if (!$link) {    die('Connect Error (' . mysqli_connect_errno() . ') '            . mysqli_connect_error());}

echo 'Success... ' . mysqli_get_host_info($link) . "\n";

mysqli_close($link);?>

Conectando com mysqli (POO)

<?php

$conn = new mysqli('localhost','username','password','database');

?>

class foo_mysqli extends mysqli {

    public function __construct($host, $user, $pass, $db) {        parent::__construct($host, $user, $pass, $db);

        if (mysqli_connect_error()) {            die('Connect Error (' . mysqli_connect_errno() . ') '                    . mysqli_connect_error());        }    }

}

$db = new foo_mysqli('localhost', 'my_user', 'my_password', 'my_db');

Realizando uma consulta - Procedural

<?php$link = mysqli_connect("localhost", "user", "password", "world");

if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) {    printf("Select returned %d rows.\n", mysqli_num_rows($result));

    mysqli_free_result($result);}?>

Realizando uma consulta - POO

<?php$mysqli = new mysqli("localhost", "user", "password", "world");

if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {    printf("Select returned %d rows.\n", $result->num_rows);

    $result->close();}?>

Exemplo de resultados POO

<?php $conn = new mysqli('localhost', 'root', '', 'filmes'); $sql = "SELECT * FROM filme LIMIT 5";$query = $conn->query($sql);while ($dados = $query->fetch_array()) {

echo 'Titulo: ' . $dados['titulo'] . '<br />';echo 'Ano: ' . $dados['ano_lancamento'] . '<br /><br />';

}echo 'Registros encontrados: ' . $query->num_rows; ?>

fetch_row

<?php// mysqli_result::fetch_row -- mysqli_fetch_row // Obtém uma linha do resultado como uma matriz numerada$mysqli = new mysqli("localhost", "my_user", "my_password", "world");$query = "SELECT Name, CountryCode FROM City ORDER by ID";

if ($result = $mysqli->query($query)) {

    while ($row = $result->fetch_row()) {        printf ("%s (%s)\n", $row[0], $row[1]);    }

    $result->close();}$mysqli->close();?>

mysqli fetch_object 

Diferente do mysqli_fetch_array, a função mysqli_fetch_object() irá retornar a linha atual do conjunto de resultados como um objeto aonde os atributos do objeto representam os nomes dos campos encontrados no conjunto de resultados.

<?php$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER by ID";

if ($result = $mysqli->query($query)) {

    while ($obj = $result->fetch_object()) {        echo  $obj->Name. “ - ”; echo $obj->CountryCode.”<br>”;    } echo “Quantidade de registros: ”. $result>num_rows;    $result->close();}

$mysqli->close();?>

Para INSERT, UPDATE OU DELETE...

<?php $mysqli = new mysqli("localhost", "root", "", "teste"); if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();} $query = "INSERT INTO tabela2 (d2) VALUES (100)"; if ($result = $mysqli->query($query)) { echo "inserido com sucesso";} $mysqli->close();?>

Para INSERT, UPDATE OU DELETE...

<?php $mysqli = new mysqli("localhost", "root", "", “filmes"); if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();} $query = "DELETE FROM FROM filme WHERE nome LIKE ‘Crepusculo’ "; if ($result = $mysqli->query($query)) { echo ‘Filmes excluídos: ' . $query->affected_rows;} $mysqli->close();?>

Mapeando objetos automaticamente

<?phpclass Filme { public $cod_filme; public $titulo; public $ano_lancamento; public function info() { return '<hr>#'.$this->cod_filme.': '.$this->titulo.'

'.$this->ano_lancamento; }}?>

<?php$query = "SELECT * FROM filme";if ($result = $mysqli->query($query)) {  while ($obj = $result->fetch_object('Filme')) {

echo $obj->info(); }  $result->close();}?>