CONSTRUÇÃO DE
PÁGINAS WEB III
Prof. Antonio Miguel Faustini Zarth
[email protected]
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('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>
Antigamente
<?php
$conn=mysqli_connect('localhost','usernam
e','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
$conn = new mysqli('localhost','username','password','database');
?>
Conectando com mysqli
(POO)
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');
<?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 Procedural
<?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();
}
?>
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 = 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();
?>
fetch_row
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.
mysqli fetch_object
<?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();
?>
<?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();
?>
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;
}
}
?>
Mapeando objetos
automaticamente
<?php
$query = "SELECT * FROM filme";
if ($result = $mysqli->query($query)) {
while ($obj = $result->fetch_object('Filme')) {
echo $obj->info();
}
$result->close();
}
?>
Download

PHP-mysqli