Programação para WEB
Regis Pires Magalhães
regispiresmag@gmail.com
PDO
PHP Data Objects
PDO
 Interface comum para acesso a vários bancos de dados;
 Escrito em C e com excelente performance;
 Suporte a: MySQL, PostgreSQL, Firebird, SQLite,
Oracle, ODBC, MSSQL, Sybase, Informix, FreeTDS;
 Suporta Prepared Statements, Parâmetros Nomeados
e Conexões Persistentes;
 Usa UNIX Socket caso o host seja definido como
localhost e tal recurso esteja disponível:
$con = new PDO('mysql:host=localhost;dbname=prog_web',
'root', '');
 Pode-se também definir o uso de UNIX Socket
explicitamente:
$con = new PDO('mysql:unix_socket;dbname=prog_web',
'root', '');
MySQL via PDO
<?php
try {
$con = new PDO('mysql:host=localhost;dbname=prog_web',
'root', '');
$stmt = $con->prepare("SELECT * FROM pessoas ");
$stmt->execute();
$resultado = $stmt->fetchAll();
print_r($resultado);
} catch (PDOException $ex) {
echo $ex->getMessage();
die();
}
?>
MySQL via PDO
<?php
try {
$nome = 'R';
$con = new PDO('mysql:host=localhost;dbname=prog_web',
'root', '', array(PDO::ATTR_PERSISTENT => true,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$sql = "SELECT * FROM pessoas
WHERE nome LIKE concat(:nome,'%')";
$stmt = $con->prepare($sql);
$stmt->bindParam(':nome', $nome);
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();
$resultado = $stmt->fetchAll();
print_r($resultado);
} catch (PDOException $ex) {
echo $ex->getMessage();
die();
}
?>
MySQL via PDO
<?php
try {
$nome = 'Regis';
$fone = '1234';
$email = 'regis@cefetpi.br';
$con = new PDO('mysql:host=localhost;dbname=prog_web',
'root', '', array(PDO::ATTR_PERSISTENT => true,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$sql = 'INSERT INTO pessoas (nome,fone,email)
VALUES (:nome,:fone,:email) ';
$stmt = $con->prepare($sql);
$stmt->bindParam(':nome', $nome);
$stmt->bindParam(':fone', $fone);
$stmt->bindParam(':email', $email);
$stmt->execute();
} catch (PDOException $ex) {
echo $ex->getMessage();
die();
}
?>
Obtendo informações sobre PDO
<?php
$con = new PDO('mysql:host=localhost;dbname=prog_web',
'root', '');
$attributes = array(
"AUTOCOMMIT", "ERRMODE", "CASE", "CLIENT_VERSION",
"CONNECTION_STATUS", "ORACLE_NULLS", "PERSISTENT",
"PREFETCH", "SERVER_INFO", "SERVER_VERSION",
"TIMEOUT"
);
foreach ($attributes as $val) {
echo "PDO::ATTR_$val: ";
echo $con->getAttribute(constant("PDO::ATTR_$val")) .
'<br/>';
}
?>
Obtendo informações sobre PDO
<?php
$con = new PDO('mysql:host=localhost;dbname=prog_web',
'root', '');
$attributes = array(
"AUTOCOMMIT", "ERRMODE", "CASE", "CLIENT_VERSION",
"CONNECTION_STATUS", "ORACLE_NULLS", "PERSISTENT",
"PREFETCH", "SERVER_INFO", "SERVER_VERSION",
"TIMEOUT"
);
foreach ($attributes as $val) {
echo "PDO::ATTR_$val: ";
echo $con->getAttribute(constant("PDO::ATTR_$val")) .
'<br/>';
}
?>

Prog web 07-pdo

  • 1.
    Programação para WEB RegisPires Magalhães regispiresmag@gmail.com PDO PHP Data Objects
  • 2.
    PDO  Interface comumpara acesso a vários bancos de dados;  Escrito em C e com excelente performance;  Suporte a: MySQL, PostgreSQL, Firebird, SQLite, Oracle, ODBC, MSSQL, Sybase, Informix, FreeTDS;  Suporta Prepared Statements, Parâmetros Nomeados e Conexões Persistentes;  Usa UNIX Socket caso o host seja definido como localhost e tal recurso esteja disponível: $con = new PDO('mysql:host=localhost;dbname=prog_web', 'root', '');  Pode-se também definir o uso de UNIX Socket explicitamente: $con = new PDO('mysql:unix_socket;dbname=prog_web', 'root', '');
  • 3.
    MySQL via PDO <?php try{ $con = new PDO('mysql:host=localhost;dbname=prog_web', 'root', ''); $stmt = $con->prepare("SELECT * FROM pessoas "); $stmt->execute(); $resultado = $stmt->fetchAll(); print_r($resultado); } catch (PDOException $ex) { echo $ex->getMessage(); die(); } ?>
  • 4.
    MySQL via PDO <?php try{ $nome = 'R'; $con = new PDO('mysql:host=localhost;dbname=prog_web', 'root', '', array(PDO::ATTR_PERSISTENT => true, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); $sql = "SELECT * FROM pessoas WHERE nome LIKE concat(:nome,'%')"; $stmt = $con->prepare($sql); $stmt->bindParam(':nome', $nome); $stmt->setFetchMode(PDO::FETCH_ASSOC); $stmt->execute(); $resultado = $stmt->fetchAll(); print_r($resultado); } catch (PDOException $ex) { echo $ex->getMessage(); die(); } ?>
  • 5.
    MySQL via PDO <?php try{ $nome = 'Regis'; $fone = '1234'; $email = 'regis@cefetpi.br'; $con = new PDO('mysql:host=localhost;dbname=prog_web', 'root', '', array(PDO::ATTR_PERSISTENT => true, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); $sql = 'INSERT INTO pessoas (nome,fone,email) VALUES (:nome,:fone,:email) '; $stmt = $con->prepare($sql); $stmt->bindParam(':nome', $nome); $stmt->bindParam(':fone', $fone); $stmt->bindParam(':email', $email); $stmt->execute(); } catch (PDOException $ex) { echo $ex->getMessage(); die(); } ?>
  • 6.
    Obtendo informações sobrePDO <?php $con = new PDO('mysql:host=localhost;dbname=prog_web', 'root', ''); $attributes = array( "AUTOCOMMIT", "ERRMODE", "CASE", "CLIENT_VERSION", "CONNECTION_STATUS", "ORACLE_NULLS", "PERSISTENT", "PREFETCH", "SERVER_INFO", "SERVER_VERSION", "TIMEOUT" ); foreach ($attributes as $val) { echo "PDO::ATTR_$val: "; echo $con->getAttribute(constant("PDO::ATTR_$val")) . '<br/>'; } ?>
  • 7.
    Obtendo informações sobrePDO <?php $con = new PDO('mysql:host=localhost;dbname=prog_web', 'root', ''); $attributes = array( "AUTOCOMMIT", "ERRMODE", "CASE", "CLIENT_VERSION", "CONNECTION_STATUS", "ORACLE_NULLS", "PERSISTENT", "PREFETCH", "SERVER_INFO", "SERVER_VERSION", "TIMEOUT" ); foreach ($attributes as $val) { echo "PDO::ATTR_$val: "; echo $con->getAttribute(constant("PDO::ATTR_$val")) . '<br/>'; } ?>