180 likes | 265 Views
Construção de Páginas Web III. Prof. Antonio Miguel Faustini Zarth. antonio.zarth@ifms.edu.br. php. Conexão com BDs. 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...
E N D
Construção de Páginas Web III Prof. Antonio Miguel Faustini Zarth antonio.zarth@ifms.edu.br
php Conexão com BDs
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 Preliminares
A partir daqui além do Apache e do PHP rodando, você precisará do MySQL instalado em sua máquina. Atenção
<?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password');if (!$link) { die('Couldnotconnect: ' . mysql_error());}echo 'Connectedsuccessfully';mysql_close($link);?> Antigamente
<?php $conn=mysqli_connect('localhost','username','password','database'); ?> Conectando Procedural
<?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);?><?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);?>
<?php $conn= new mysqli('localhost','username','password','database'); ?> Conectando com mysqli (POO)
classfoo_mysqliextendsmysqli{ publicfunction __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');
<?php $link = mysqli_connect("localhost", "user", "password", "world"); if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) {printf("Selectreturned %d rows.\n", mysqli_num_rows($result)); mysqli_free_result($result);} ?> Realizando uma consulta - Procedural
<?php $mysqli = newmysqli("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();} ?> Realizando uma consulta - 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; ?> Exemplo de resultados POO
<?php // mysqli_result::fetch_row -- mysqli_fetch_row // Obtém uma linha do resultado como uma matriz numerada $mysqli = newmysqli("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(); ?> fetch_row
Diferente do mysqli_fetch_array, a funçãomysqli_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. mysqlifetch_object
<?php$mysqli = newmysqli("localhost", "my_user", "my_password", "world");<?php$mysqli = newmysqli("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();?>
<?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 FROMfilmeWHERE nome LIKE ‘Crepusculo’ "; if ($result = $mysqli->query($query)) { echo‘Filmes excluídos: ' . $query->affected_rows; } $mysqli->close(); ?> Para INSERT, UPDATE OU DELETE...
<?php class 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(); } ?> Mapeando objetos automaticamente