PDO 1 - SQLite: programa único

Nombre $cfg["tablaPersonasTamApellidos"] = 60; // Tamaño de la columna Personas > Apellidos // Variables configurables por el programador de la aplicación // Nombres de las tablas $cfg["tablaPersonas"] = "personas"; // Nombre de la tabla Personas // // // PASO 2: Crear el objeto PDO de conexión con la base de datos. // SQLITE: Conexión con la base de datos function conectaDb() { global $cfg; try { $tmp = new PDO("sqlite:$cfg[sqliteDatabase]"); $tmp->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT); $tmp->query("PRAGMA foreign_keys = ON"); $tmp->query("PRAGMA encoding = 'UTF-8'"); return $tmp; } catch (PDOException $e) { print "

Error: No puede conectarse con la base de datos. {$e->getMessage()}

\n"; exit; } } // CONEXIÓN CON LA BASE DE DATOS $pdo = conectaDb(); // // // PASO 3: Borrar la tabla. // CONSULTA DE BORRADO DE TABLA $consulta = "DROP TABLE IF EXISTS $cfg[tablaPersonas]"; if (!$pdo->query($consulta)) { print "

Error al borrar la tabla. SQLSTATE[{$pdo->errorCode()}]: {$pdo->errorInfo()[2]}

\n"; } else { print "

Tabla borrada correctamente (si existía).

\n"; } print "\n"; // // // PASO 4: Crear la tabla. // SQLITE: CONSULTA DE CREACIÓN DE TABLA $consulta = "CREATE TABLE $cfg[tablaPersonas] ( id INTEGER PRIMARY KEY, nombre VARCHAR($cfg[tablaPersonasTamNombre]) COLLATE NOCASE, apellidos VARCHAR($cfg[tablaPersonasTamApellidos]) COLLATE NOCASE )"; if (!$pdo->query($consulta)) { print "

Error al crear la tabla. SQLSTATE[{$pdo->errorCode()}]: {$pdo->errorInfo()[2]}

\n"; } else { print "

Tabla creada correctamente.

\n"; } print "\n"; // // // PASO 5: Insertar un registro en la tabla. // CONSULTA DE INSERCIÓN DE REGISTRO $nombre = "Pepito"; // Normalmente estos valores vendrán de un formulario $apellidos = "Conejo"; $consulta = "INSERT INTO $cfg[tablaPersonas] (nombre, apellidos) VALUES (:nombre, :apellidos)"; $resultado = $pdo->prepare($consulta); if (!$resultado) { print "

Error al preparar la consulta. SQLSTATE[{$pdo->errorCode()}]: {$pdo->errorInfo()[2]}

\n"; } elseif (!$resultado->execute([":nombre" => $nombre, ":apellidos" => $apellidos])) { print "

Error al ejecutar la consulta. SQLSTATE[{$pdo->errorCode()}]: {$pdo->errorInfo()[2]}

\n"; } else { print "

Registro creado correctamente.

\n"; print "\n"; } // // // PASO 6: Mostrar cuántos registros hay en la tabla. // CONSULTA DE SELECCIÓN DE REGISTROS QUE DEVUELVE UN ÚNICO REGISTRO DE UNA COLUMNA $consulta = "SELECT COUNT(*) FROM $cfg[tablaPersonas]"; $resultado = $pdo->query($consulta); if (!$resultado) { print "

Error en la consulta. SQLSTATE[{$pdo->errorCode()}]: {$pdo->errorInfo()[2]}

\n"; } else { print "

La tabla contiene {$resultado->fetchColumn()} registro(s).

\n"; print "\n"; } // // // PASO 7: Mostrar los valores del registro guardado en la tabla. // CONSULTA DE SELECCIÓN DE REGISTROS QUE PUEDE DEVOLVER VARIOS REGISTROS (O UNO O NINGUNO) $consulta = "SELECT * FROM $cfg[tablaPersonas]"; $resultado = $pdo->query($consulta); if (!$resultado) { print "

Error en la consulta. SQLSTATE[{$pdo->errorCode()}]: {$pdo->errorInfo()[2]}

\n"; } else { print "

Registro(s) obtenido(s):

\n"; print " \n"; print "\n"; } // // // PASO 8: Modificar el registro guardado en la tabla. // CONSULTA DE MODIFICACIÓN DE REGISTRO $id = "1"; // Normalmente estos valores vendrán de un formulario $nombre = "Pepita"; $apellidos = "Conejo"; $consulta = "UPDATE $cfg[tablaPersonas] SET nombre = :nombre, apellidos = :apellidos WHERE id = :id"; $resultado = $pdo->prepare($consulta); if (!$resultado) { print "

Error al preparar la consulta. SQLSTATE[{$pdo->errorCode()}]: {$pdo->errorInfo()[2]}

\n"; } elseif (!$resultado->execute([":nombre" => $nombre, ":apellidos" => $apellidos, ":id" => $id])) { print "

Error al ejecutar la consulta. SQLSTATE[{$pdo->errorCode()}]: {$pdo->errorInfo()[2]}

\n"; } else { print "

Registro modificado correctamente.

\n"; print "\n"; } // // // PASO 9: Mostrar los valores del registro guardado en la tabla. // CONSULTA DE SELECCIÓN DE REGISTROS QUE PUEDE DEVOLVER VARIOS REGISTROS (O UNO O NINGUNO) $consulta = "SELECT * FROM $cfg[tablaPersonas]"; $resultado = $pdo->query($consulta); if (!$resultado) { print "

Error en la consulta. SQLSTATE[{$pdo->errorCode()}]: {$pdo->errorInfo()[2]}

\n"; } else { print "

Registro(s) obtenido(s):

\n"; print " \n"; print "\n"; } // // // PASO 10: Insertar un segundo registro en la tabla. // CONSULTA DE INSERCIÓN DE REGISTRO $nombre = "Numa"; // Normalmente estos valores vendrán de un formulario $apellidos = "Nigerio"; $consulta = "INSERT INTO $cfg[tablaPersonas] (nombre, apellidos) VALUES (:nombre, :apellidos)"; $resultado = $pdo->prepare($consulta); if (!$resultado) { print "

Error al preparar la consulta. SQLSTATE[{$pdo->errorCode()}]: {$pdo->errorInfo()[2]}

\n"; } elseif (!$resultado->execute([":nombre" => $nombre, ":apellidos" => $apellidos])) { print "

Error al ejecutar la consulta. SQLSTATE[{$pdo->errorCode()}]: {$pdo->errorInfo()[2]}

\n"; } else { print "

Registro creado correctamente.

\n"; print "\n"; } // // // PASO 11: Mostrar cuántos registros hay en la tabla. // CONSULTA DE SELECCIÓN DE REGISTROS QUE DEVUELVE UN ÚNICO REGISTRO DE UNA COLUMNA $consulta = "SELECT COUNT(*) FROM $cfg[tablaPersonas]"; $resultado = $pdo->query($consulta); if (!$resultado) { print "

Error en la consulta. SQLSTATE[{$pdo->errorCode()}]: {$pdo->errorInfo()[2]}

\n"; } else { print "

La tabla contiene {$resultado->fetchColumn()} registro(s).

\n"; print "\n"; } // // // PASO 12: Mostrar los valores de los dos registros guardados en la tabla. // CONSULTA DE SELECCIÓN DE REGISTROS QUE PUEDE DEVOLVER VARIOS REGISTROS (O UNO O NINGUNO) $consulta = "SELECT * FROM $cfg[tablaPersonas]"; $resultado = $pdo->query($consulta); if (!$resultado) { print "

Error en la consulta. SQLSTATE[{$pdo->errorCode()}]: {$pdo->errorInfo()[2]}

\n"; } else { print "

Registro(s) obtenido(s):

\n"; print " \n"; print "\n"; } // // // PASO 13: Borrar el primer registro guardado en la tabla. // CONSULTA DE BORRADO DE REGISTROS $id = [1 => "on"]; // Normalmente este valor vendrá de un formulario (en este caso, como matriz). foreach ($id as $indice => $valor) { $consulta = "DELETE FROM $cfg[tablaPersonas] WHERE id = :indice"; $resultado = $pdo->prepare($consulta); if (!$resultado) { print "

Error al preparar la consulta. SQLSTATE[{$pdo->errorCode()}]: {$pdo->errorInfo()[2]}

\n"; } elseif (!$resultado->execute([":indice" => $indice])) { print "

Error al ejecutar la consulta. SQLSTATE[{$pdo->errorCode()}]: {$pdo->errorInfo()[2]}

\n"; } else { print "

Registro borrado correctamente (si existía).

\n"; print "\n"; } } // // // PASO 14: Mostrar los valores del registro guardado en la tabla. // CONSULTA DE SELECCIÓN DE REGISTROS QUE PUEDE DEVOLVER VARIOS REGISTROS (O UNO O NINGUNO) $consulta = "SELECT * FROM $cfg[tablaPersonas]"; $resultado = $pdo->query($consulta); if (!$resultado) { print "

Error en la consulta. SQLSTATE[{$pdo->errorCode()}]: {$pdo->errorInfo()[2]}

\n"; } else { print "

Registro(s) obtenido(s):

\n"; print " \n"; print "\n"; } print "
\n"; print "\n"; print " \n"; print "\n"; print "\n";