//Primero conéctate a la base de datos mysql
$dbh = nuevo PDO('mysql:host=localhost;dbname=test', $usuario, $contraseña);
//Si quieres conectarte a mssql:
//mssql:host=localhost;dbname=testdb
//Conéctate a pgsql:
//pgsql:host=localhost puerto=5432 dbname=testdb usuario=bruce contraseña=micontraseña
//Conectar a odbc(DSN)
//odbc:pruebadb
//Acceso parejo:
//odbc:Driver={Controlador de Microsoft Access (*.mdb)};Dbq=C:\db.mdb;Uid=Admin
//También existen oracle, sqlite, db2....
//Ejecutar una consulta
foreach ($dbh->query('SELECT * from FOO') como $fila) {
print_r($row); //Este resultado es similar a mysql_fetch_array. PDOStatement::setFetchMode se puede ajustar.
}
//También:
$sth = $dbh->prepare("SELECCIONE nombre, color DE fruta");
$sth->execute();
//Lee el conjunto de registros completo en la matriz:
$resultado = $algo->fetchAll();
print_r($resultado);
//Producción:
Formación
(
[0] => Matriz
(
[NOMBRE] => pera
[0] => pera
[COLOR] => verde
[1] => verde
)
[1] => Matriz
(
[NOMBRE] => sandía
[0] => sandía
[COLOR] => rosa
[1] => rosa
)
)
//Insertar/eliminar/actualizar datos:
$count = $dbh->exec("BORRAR DE fruta DONDE color = 'rojo'");
//$count es el número de elementos eliminados. Equivalente a mysql_affected_rows
//También puedes usar PDOStatement::rowCount
//Olvidé qué base de datos usé. . . .
si ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
echo "Ejecutando en mysql; haciendo algo específico de mysql aquín";
}
//Mysql_escape_string solía usarse al insertar datos, ¿ahora?
print "Cadena sin comillas: $cadenan";
imprimir "Cadena citada: " $conn->quote($cadena) "n";
//conseguir:
Cadena sin comillas: agradable
Cadena entre comillas: 'Agradable'
//Verá, ahora incluso las comillas se agregan automáticamente. . . .
// Tenga en cuenta que los resultados son diferentes en diferentes bases de datos, como algunas ' => '', algunas ' => ', => \
//No te preocupes ahora, completamente automático.
//Finalmente tengo que cerrarlo
$conexión = nulo;
//¡pero! Puedes permanecer conectado mediante:
$dbh = nuevo PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
array(PDO_ATTR_PERSISTENT => true));
//Muy simple, ¿no?
Adjunto: Un método de llamada especial muy simple:
$stmt = $dbh->prepare("SELECCIONAR * DEL REGISTRO donde nombre =?");
if ($stmt->execute(array($_GET['name']))) { // ¿A qué tienes miedo? ¡Cotización automática!
mientras ($fila = $stmt->fetch()) {
print_r($fila);
}
}
También:
$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['archivo']['tipo']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);
¿Dónde puedo encontrar una función tan buena? php5.1 y superiores están en la extensión, php5 está en pecl, php4 No lo pienses, ¿no?