//Primeiro conecte-se ao banco de dados mysql
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
//Se você deseja se conectar ao mssql:
//mssql:host=localhost;dbname=testdb
//Conecta-se ao pgsql:
//pgsql:host=localhost port=5432 dbname=testdb user=bruce password=mypass
//Conecta ao odbc(DSN)
//odbc:testdb
//Acesso uniforme:
//odbc:Driver={Driver do Microsoft Access (*.mdb)};Dbq=C:\db.mdb;Uid=Admin
//Existem também oracle, sqlite, db2....
//Executa uma consulta
foreach ($dbh->query('SELECT * from FOO') as $row) {
print_r($row); //Este resultado é semelhante ao mysql_fetch_array. PDOStatement::setFetchMode pode ser ajustado.
}
//Também:
$sth = $dbh->prepare("SELECIONE nome, cor FROM fruta");
$sth->execute();
//Lê todo o conjunto de registros no array:
$resultado = $sth->fetchAll();
print_r($resultado);
//Saída:
Variedade
(
[0] => Matriz
(
[NOME] => pêra
[0] => pêra
[COR] => verde
[1] => verde
)
[1] => Matriz
(
[NOME] => melancia
[0] => melancia
[COR] => rosa
[1] => rosa
)
)
//Inserir/excluir/atualizar dados:
$count = $dbh->exec("DELETE FROM fruta WHERE color = 'red'");
//$count é o número de itens excluídos. Equivalente a mysql_affected_rows
//Você também pode usar PDOStatement::rowCount
//Esqueci qual banco de dados usei. . . .
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
echo "Executando no mysql; fazendo algo específico do mysql aquin";
}
//Mysql_escape_string costumava ser usado ao inserir dados, agora?
print "String sem aspas: $stringn";
imprimir "String citada: " $conn->quote($string) "n";
//pegar:
String sem aspas: Legal
String citada: 'Legal'
//Veja, até as aspas são adicionadas automaticamente agora. . . .
//Observe que os resultados são diferentes em bancos de dados diferentes, como alguns ' => '', alguns ' => ', => \
//Não se preocupe agora, totalmente automático.
//Finalmente tenho que fechar
$conn = nulo;
//mas! Você pode ficar conectado por:
$dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
array(PDO_ATTR_PERSISTENT => true));
//Muito simples, não é?
Anexo: Um método de chamada especial muito simples:
$stmt = $dbh->prepare("SELECT * FROM REGISTRY onde nome = ?");
if ($stmt->execute(array($_GET['name']))) { //Do que você tem medo? Cotação automática!
while ($linha = $stmt->fetch()) {
print_r($linha);
}
}
Também:
$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['arquivo']['tipo']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);
Onde posso encontrar uma função tão boa? php5.1 e superiores estão na extensão, php5 está em pecl, php4 Não pense nisso, não?