Sunteți pe pagina 1din 24

Crear una conexin a MySQL con PDO

Anteriormente hice un video donde muestro como realizar una conexin a base de datos
MySQL con PDO (http://behstant.com/blog/?p=167), pero para aquellos que les gusta las
cosas simples hago este post para mostrar cmo realizar un conexin de una forma simple.
El significado de PDO es PHP Data Objects, lo que significa que trabajamos con
Programacin Orientada a Objetos (POO). Para poder trabajar con PDO necesitamos crear
una instancia de la clase PDO. Algunos mtodos son: prepare, execute, exec,
beginTransaction, bindParam, commit. Estos mtodos los voy ir tratando durante el resto de
posts en el blog.
Lo primero que tenemos que hacer antes de crear nuestra conexin es verificar que tenemos
PDO disponible para trabajar, entonces con el siguiente cdigo verificamos que este
habilitado. Copia y guarda el archivo con un nombre de phpinfo.php y lo ejecutas en tu
servidor:
?
1
2
3
4
5
<?php

phpinfo();

?>
Esta es la informacin que te debe de salir:

Si todo esta correcto entonces ahora si procedemos a crear nuestra conexin con la clase
PDO usando el siguiente cdigo:
?
1
2
3
<?php
try {
$conn = new
PDO('mysql:host=localhost;dbname=pruebas','admin','12345');
4
5
6
7
8
9
10
echo "Conexin realizada con xito !!!";
}
catch (PDOException $ex) {
echo $ex->getMessage();
exit;
}
?>

Cuando se utiliza PDO o algn otro cdigo de dispare una excepcin (el termino en ingles
es throw) se necesita agrupar el cdigo en un bloque try-catch, si todo marcha bien nuestro
cdigo se ejecuta sin error, en dado caso de que salga algo mal agarramos el error en el
catch.
El siguiente cdigo merece la pena comentarlo un poco ms:
?
1
2
3
4
catch (PDOException $ex) {
echo $ex->getMessage();
exit;
}
Debemos de tener cuidado de que echo $ex->getMessage(); no est siempre visible, ya que
si se presenta un error nuestro usuario de conexin o nuestra contrasea puede ser
mostrada, el uso de getMessage() es para que nosotros podamos depurar nuestro cdigo,
entonces lo que debemos de hacer es mostrar otro mensaje, quedando nuestro cdigo para
ser usado de la siguiente manera :
?
1
2
3
4
5
6
7
8
9
10
<?php
try {
$conn = new
PDO('mysql:host=localhost;dbname=pruebas','admin','12345');
echo "Conexin realizada con xito !!!";
}
catch (PDOException $ex) {
echo "Sucedio un problema al realizar la conexin !!";
exit;
}
?>
Ya con este cdigo tenemos un objeto PDO con el cual podemos empezar a interactuar con
la base de datos, pero estar haciendo uso de nuestro objeto instanciado $conn en las
siguientes posts.
El cdigo fuente de este ejemplo lo podemos observar y descargar de
aqu: http://paste.behstant.com/index.php?show=47
Mtodo PDO::query para obtener
resultados con MySQL
Esta es la continuacin de los tutoriales para manejar base de datos con PHP y PDO.
Qu es lo que se necesita para poder completar este tutorial?
Primero que nada es necesario haber hecho con xito una conexin a nuestra base de datos
con PDO, si aun no has completado el tutorial te invito a que pases a revisarlo antes de
continuar.
Crear una conexin a MySQL con PDO
Basada en la explicacin para crear una nueva instancia de PDO, vamos a hacer una
funcin que podamos reutilizar cuantas veces queramos. Entonces el primer archivo que
usamos es


Connection.simple.php
?
1
2
3
4
5
6
7
8
9
10
11
<?php
function dbConnect (){
$conn = null;
$host = 'localhost';
$db = 'tutorials';
$user = 'trainer';
$pwd = 'tut212';
try {
$conn = new PDO('mysql:host='.$host.';dbname='.$db, $user,
$pwd);
//echo 'Connected succesfully.<br>';
}
catch (PDOException $e) {
12
13
14
15
16
17
18
19
echo '<p>Cannot connect to database !!</p>';
exit;
}
return $conn;
}

?>
De este archivo tenemos que tener en cuenta 4 cosas: El host, la base de datos, el usuario y
la contrasea. Esta informacin la vamos a crear con phpMyAdmin siguiendo los siguientes
pasos(Si ya saben como crear esta informacin omitir los pasos e irse al cdigo PHP):
Crear la Base de Datos (Click en las imgenes para hacer mas grande)

Crear la Tabla
Crearemos la tabla que se va a llamar empleado con 4 campos.

Crear el Usuario
Creamos al usuario con los datos que estn en nuestro cdigo

Crear las columnas

Ir a la consola de MySQL


Una vez que tengamos abierta nuestra consola seleccionamos nuestra base de datos, una vez
seleccionada pegamos el siguiente cdigo. vamos a ingresar para agregar informacin a nuestra
tabla. En mi caso y para este tutorial estoy utilizando WAMP, si necesitas descargarlo lo
encuentras aqu http://www.wampserver.com/en/
?
1
2
3
INSERT INTO empleado VALUES(null,"Dennis
Ritchie","dritchie@bell.com","555-154-8745");
INSERT INTO empleado VALUES(null,"Ken
Thompson","kthompson@bell.com","555-154-1234");
INSERT INTO empleado VALUES(null,"Steve Jobs","sjobs@apple.com","751-121-
8125");
?
1




Comprobar que los datos se encuentre insertados.

Script 1
phpParameters-01.php Una vez que ya tenemos creada nuestra base de datos y nuestra
tabla poblada de informacin pasemos a lo mas importante que es obtener informacin con
PDO y luego mostrarla. 1.- Primero tenemos que hacer agregar el archivo
Connection.simple.php para poder hacer uso de la funcin dbConnect(). 2.- Crear un
objecto llamado $conn, digo objeto por que al usar dbConnect() creamos una instancia de
PDO. 3.- Para hacer las cosas mas limpias creamos una variable llamada $sql donde
creamos nuestro query. 4.- De nuestra conexin $conn podemos acceder al mtodo query()
que recibe como parmetro una cadena. query() nos devuelve un tipo PDOStatement del
cual usamos un mtodo que se llama fetchAll(), fetchAll() nos devuelve un arreglo
asociativo que recorremos posteriormente con un foreach. 5.- En nuestro foreach
accedemos a nuestro arreglo y lo imprimimos.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
require_once 'Connection.simple.php';

$conn = dbConnect();
// Create the query
$sql = 'SELECT * FROM empleado';
// Create the query and asign the result to a variable call $result
$result = $conn->query($sql);
// Extract the values from $result
$rows = $result->fetchAll();
// Since the values are an associative array we use foreach to
extract the values from $rows
foreach ($rows as $row) {
echo 'id_empleado: '.$row['id_empleado'].'<br/>';
echo 'nombre: '.$row['nombre'].'<br/>';
echo 'email: '.$row['email'].'<br/>';
echo 'telefono: '.$row['telefono'].'<br/>';
echo "<hr/>";
}
?>
Y este sera nuestro resultado:

Script 2 Salida Heredoc y PHP inline
phpParameters-02.php
En el script dos lo que hacemos es formatear un poco mas nuestro resultado en una tabla.
Primero lo hago en formato Heredoc para hacer uso del metodo <<< y despues muestro
como hacerlo en formato PHP inline. Si tu pregunta es cual de estos dos es mejor? la
respuesta es depende. Depende de como vayas a manejar tu contenido para mostrar la
informacin.

?
1
2
3
4
5
6
7
8
<?php
require_once 'Connection.simple.php';
$result;

$conn = dbConnect();
// Create the query
$sql = 'SELECT * FROM empleado';
// Create the query and asign the result to a variable call $result
$result = $conn->query($sql);
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Extract the values from $result
$rows = $result->fetchAll();
// Since the values are an associative array we use foreach to
extract the values from $rows
// ####### We format the result in a table using Heredoc. #######
echo <<< HTML
<h3>Version Heredoc</h3>
<table border="1">
<thead>
<tr>
<th>ID</th>
<th>Nombre</th>
<th>Email</th>
<th>Telefono</th>
</tr>
</thead>
<tbody>
HTML;
foreach ($rows as $row) {
echo <<< HTML
<tr>
<td>$row[id_empleado]</td>
<td>$row[nombre]</td>
<td>$row[email]</td>
<td>$row[telefono]</td>
</tr>

HTML;
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
}
echo '</tbody>';
echo '</table>';

?>
<!-- ##### Down here we use HTML and add inline the PHP code ####-->
<h3>Version Normal o Inline</h3>
<table border="1">
<thead>
<tr>
<th>ID</th>
<th>Nombre</th>
<th>Email</th>
<th>Telefono</th>
</tr>
</thead>
<tbody>
<?php
foreach ($rows as $row) {
?>
<tr>
<td><?php echo $row['id_empleado']; ?></td>
<td><?php echo $row['nombre']; ?></td>
<td><?php echo $row['email']; ?></td>
<td><?php echo $row['telefono']; ?></td>
</tr>
<?php } ?>
</tbody>
59
60
61
62
63
64
65
</table>
Y este sera nuestro resultado:

Comentarios finales
Como se puede observar el mtodo query para extraer datos no es muy complejo, solo hay
que familiarizarse con el. En el tutorial he demostrado varias cosas que a lo mejor parece
confusas para algunos, si eres uno de ellos no dudes en preguntar
Cdigo fuente
Comparto el cdigo fuente que utilice para hacer este tutorial. Descrgalo aqu




Mtodo PDO::prepare Obtener Resultados
con Parametros
En el post Mtodo PDO::query para obtener
resultados con MySQL mostr como hacer un query y mostrar los resultados, ahora vamos
a ir a algo un poco mas interesante que es obtener informacin basado en un ID de
empleado. Nuestro objetivo es que con el ID del empleado nos muestre su nombre. La
informacin ser proporcionada a travs de un campo de texto en una forma HTML.
Busqueda de Empleado
Id de empleado:

Nombre de Empleado:
Para el post utilizamos la Base de Datos creada en Mtodo PDO::query para obtener
resultados con MySQL, si an no la tienes puedes visitar el post y descargar los archivos.
El mtodo PDO::prepare() nos permite preparar un query con los datos que queremos
enviar a este.
En vez de hacer un query concatenado como se haca anteriomente en el MySQL antiguo:
?
1
SELECT nombre FROM empleado WHERE id_empleado = 2
Ahora vamos a utilizar Named Placeholders (Parametro con Nombre) que van a
repesentar los valorque vamos a ligar. los Named Placedholders estan dentro de nuestro
query y se escribe el nombre que queramos empezando con dos puntos (colon).
?
1
SELECT nombre FROM empleado WHERE id_empleado = :id
Entonces nuestro cdigo para hacer el query y obtener los resultados es el siguiente:
?
1
2
3
4
5
$sql = 'SELECT nombre FROM empleado WHERE id_empleado = :id';
$stmt = $conn->prepare($sql);
$stmt->bindParam(':id',$_POST['id'], PDO::PARAM_INT);
$stmt->execute();
$result = $stmt->fetchColumn();
PDO::PARAM_INT, es para ser mas explicito en los datos que les estamos enviado.
Algunos tipos de datos que se manejan son:
?
1
2
3
PDO::PARAM_INT: Integer (whole number)
PDO::PARAM_LOB: Binary (such as an image, Word document, or PDF file)
PDO::PARAM_STR: String (text)
Sin embargo no se ve ninguno para un punto flotante, por lo tanto el 3er argumento es
opcional, as que lo puedes dejar sin argumento.
Si no queremos utilizar PDO::bindingParam podemos enviar la informacin directa a
execute en forma de arrelgo:
?
1
2
3
4
// prepare statement
$stmt = $conn->prepare($sql);
// execute query by passing array of variables
$stmt->execute(array(':name' => $_POST['name'], ':pwd' =>
$_POST['pwd']));
Si esto te parecio mejor que te parece evitar incluso usar Named Placeholders y solo indicar
con signo de pregunta.
?
1
SELECT nombre FROM empleado WHERE id_empleado = ?
Y para enviar los datos un mtodo an mas facil
?
1
2
3
$sql = 'SELECT nombre FROM empleado WHERE id_empleado = ?';
$stmt = $conn->prepare($sql);
$result = $stmt->execute(array($_POST['id']));
De esta manera podemos ver algunos mtodos para enviar parametros a travs de
PDO::prepare(). Los cdigos donde se utiliza esto estos ejemplos son:
phpParameters-03.php
?
1
<?php
require_once 'Connection.simple.php';
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
$result = "";
$conn = dbConnect();
// If 'buscar' is in the array $_POST proceed to make the query.
if (array_key_exists("search",$_POST)) {
// Create the query with Named Placeholders
$sql = 'SELECT nombre FROM empleado WHERE id_empleado = :id';
// we have to tell the PDO that we are going to send values to
the query
$stmt = $conn->prepare($sql);
// Now we bind the params
$stmt->bindParam(':id',$_POST['id'], PDO::PARAM_INT);
// Now we execute the query passing an array toe execute();
$stmt->execute();
// Extract the values from $result
$result = $stmt->fetchColumn();
if (empty($result)) {
$result = "No se encontraron resultados !!";
}
} else {

}

?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Query data sending an ID</title>
<meta http-equiv="X-UA-Compatible" content="IE=9,crome" />
<meta name="copyright" content="Datasoft Engineering 2012"/>
<meta name="author" content="Reedyseth"/>
<meta name="email" content="ibarragan@behstant.com"/>
<meta name="description" content="Query data sending an ID" />
<style type="text/css">
body {font-family: Arial, Helvetica, sans-serif;}
</style>
</head>

<body>
<fieldset style="width:480px" >
<legend>Busqueda de Empleado</legend>
<form action="" method="post">
<div>
<label for="id">Id de empleado:</label>
<input type="text" name="id" id="id"/>
<input type="submit" name="search" value="Buscar" />
</div>
</form>
</fieldset>

<p><strong>Nombre de Empleado</strong>: <?php echo
$result;?></p>
</html>
49
50
51
52
53
phpParameters-04.php
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
require_once 'Connection.simple.php';
$result = "";
$conn = dbConnect();
// If 'buscar' is in the array $_POST proceed to make the query.
if (array_key_exists("search",$_POST)) {
// Create the query
$sql = 'SELECT nombre FROM empleado WHERE id_empleado = ?';
// we have to tell the PDO that we are going to send values to
the query
$stmt = $conn->prepare($sql);
// Now we execute the query passing an array toe execute();
$result = $stmt->execute(array($_POST['id']));
// Extract the values from $result
$result = $stmt->fetchColumn();
if (empty($result)) {
$result = "No se encontraron resultados !!";
}
} else {

}

?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Query data sending an ID</title>
<meta http-equiv="X-UA-Compatible" content="IE=9,crome" />
<meta name="copyright" content="Datasoft Engineering 2012"/>
<meta name="author" content="Reedyseth"/>
<meta name="email" content="ibarragan@behstant.com"/>
<meta name="description" content="Query data sending an ID" />
<style type="text/css">
body {font-family: Arial, Helvetica, sans-serif;}
</style>
</head>

<body>
<fieldset style="width:480px" >
<legend>Busqueda de Empleado</legend>
<form action="" method="post">
<div>
<label for="id">Id de empleado:</label>
<input type="text" name="id" id="id"/>
39
40
41
42
43
44
45
46
47
48
49
50
51
<input type="submit" name="search" value="Buscar" />
</div>
</form>
</fieldset>

<p><strong>Nombre de Empleado</strong>: <?php echo
$result;?></p>
</html>
Como podemos observar existe varias formas para obtener informacin enviando
parametros con PDO, mi forma personal de trabajar es con la versin simplificada, ya que
me enfoco mas en logica que en estar poniendo nombre en los sql.
Como ya es costrumbre dejo los cdigo fuente para que los descarguen aqu
Crear Tabla HTML con ID y Mostrar
Informacin (PHP,MySQL)
Dandole seguimiento a los tutoriales que he realizado, ahora voy a mostrar como como
llenar una tabla con el id y que ste tenga un enlace para que cuando el usuario le de click
se despliegue la informacin.
Para poder completar este tutorial primero debes de haber realizado el tutorial Mtodo
PDO::query para obtener resultados con MySQL para saber como obtener
resultados de un query. Como se puede obervar en ese tutorial mostramos nuestro resultado
en una tabla. Para cumplir nuestro objetivo vamos crear un query string con el id del
empleado en la tabla que hemos creado. Este query string lo vamos a formar en un tag
anchor a . Tambin tienes que haber completado el tutorial Mtodo PDO::prepare Obtener
Resultados con Parametros para saber como buscar un registro dado un valor.
1.- Primero que nada debemos de tener nuestra tabla ya lista.


2.- Ahora tenemos que modificar un poco la creacin de nuestra tabla la cual tiene este
cdigo:
?
1
2
3
4
5
6
7
8
9
10
<?php
foreach ($rows as $row) {
?>
<tr>
<td><?php echo $row['id_empleado']; ?></td>
<td><?php echo $row['nombre']; ?></td>
<td><?php echo $row['email']; ?></td>
<td><?php echo $row['telefono']; ?></td>
</tr>
<?php } ?>
Y lo vamos a cambiar por este otro
?
1
2
3
4
5
6
7
8
9
<?php
foreach ($rows as $row) {
?>
<tr>
<td><a href="searchEmployee.php?id=<?php echo
$row['id_empleado']; ?>"><?php echo $row['id_empleado']; ?></a></td>
<td><?php echo $row['nombre']; ?></td>
<td><?php echo $row['email']; ?></td>
<td><?php echo $row['telefono']; ?></td>
</tr>
<?php } ?>
10
Y resultado de nuestra tabla va a ser los Id con un link hacia una pgina llamada
searchEmployee.php.

Este es el cdigo completo que nos da el resultado anterior:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
require_once 'Connection.simple.php';
$result;

$conn = dbConnect();
// Create the query
$sql = 'SELECT * FROM empleado';
// Create the query and asign the result to a variable call $result
$result = $conn->query($sql);
// Extract the values from $result
$rows = $result->fetchAll();
// Since the values are an associative array we use foreach to
extract the values from $rows
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Query data sending an ID</title>
<meta http-equiv="X-UA-Compatible" content="IE=9,crome" />
<meta name="copyright" content="Datasoft Engineering 2013"/>
<meta name="author" content="Reedyseth"/>
<meta name="email" content="ibarragan@behstant.com"/>
<meta name="description" content="Query data sending an ID" />
<link rel=stylesheet href="../css/style01.css">
</head>
<body>
<table border="1">
<thead>
<tr>
<th>ID</th>
<th>Nombre</th>
<th>Email</th>
<th>Telefono</th>
</tr>
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
</thead>
<tbody>
<?php
foreach ($rows as $row) {
?>
<tr>
<td><a href="searchEmployee.php?id=<?php echo
$row['id_empleado']; ?>"><?php echo $row['id_empleado']; ?></a></td>
<td><?php echo $row['nombre']; ?></td>
<td><?php echo $row['email']; ?></td>
<td><?php echo $row['telefono']; ?></td>
</tr>
<?php } ?>
</tbody>
</table>
</html>
3.-Ahora vamos a realizar la bsqueda de la informacin del empleado. Podemos ver que
en el query string obtenemos la variable id con un valor, algo as:
?
1
searchEmployee.php?id=1
Como la informacin es enviada a travs de un query string en php la vamos a obtener con
$_GET, ya que la informacin no es enviada por una forma. Entonces con el siguiente
cdigo realizamos la busqueda y guardamos el valor en una variable $row.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
require_once 'Connection.simple.php';
$result = "";
$row = null;
$conn = dbConnect();
// If 'buscar' is in the array $_POST proceed to make the query.
if (isset($_GET['id'])) {
// Create the query
$sql = 'SELECT * FROM empleado WHERE id_empleado = ?';
// we have to tell the PDO that we are going to send values to
the query
$stmt = $conn->prepare($sql);
// Now we execute the query passing an array toe execute();
$results = $stmt->execute(array($_GET['id']));
// Extract the values from $result
$row = $stmt->fetch();
/*
$error = $stmt->errorInfo();
16
17
18
19
20
21
22
23
24
echo $error[2];
*/
if (empty($row)) {
$result = "No se encontraron resultados !!";
}
}
?>
4.- Ahora para mostrar la informacin del empleado vamos a usar una forma. La razn por
la que se usa una forma es por que en un siguiente post voy a mostrar como editar o
eliminar un registro y sta va a ser la plantilla base.
?
1
2
3
4
5
6
7
8
9
10
<label for="id">Id de empleado:</label>
<input type="text" name="id" id="id"/ disabled="disabled" value="<?php
echo $row['id_empleado'];?>"><br/>
<label for="nombre">Nombre:</label>
<input type="text" name="nombre" id="nombre"/ value="<?php echo
$row['nombre'];?>"><br/>
<label for="email">Email:</label>
<input type="text" name="email" id="email" value="<?php echo
$row['email'];?>"/><br/>
<label for="telefono">Telefono:</label>
<input type="text" name="telefono" id="telefono" value="<?php echo
$row['telefono'];?>"/><br/>
<input type="submit" name="update" value="Actualizar"
disabled="disabled"/>
<input type="submit" name="delete" value="Eliminar" disabled="disabled"/>
Una vez mostrado nuestra informacin queda listo para ser editada o eliminada.

Para el tutorial mostr la informacin en una forma, pero no tiene que ser de esta manera
siempre, ustedes pueden poner la informacin en cualquier tag de HTML y darle formato.
Si tienen dudas o comentarios sobre el post no duden en realizarlas. De todos modos les
pongo el cdigo fuente de este turorial aqu para que puedan jugar con el
Eliminar un registro con PHP
(PDO,MySQL)
Para finalizar la serie de tutoriales donde trabajamos con una tabla llamada empleado en
esta ocacin voy a ensear como ingresar un registro (ya que los registros que tenemos los
ingresamos directamente por un query) y tambin como eliminar un registro. Para
completar este tutorial debes de haber realizado los siguientes tutoriales, o tambin puedes
ir directo al cdigo e interpretarlo:
1. Crear una conexin a MySQL con PDO
2. Mtodo PDO::query para obtener resultados con MySQL
3. Mtodo PDO::prepare Obtener Resultados con Parametros
4. Crear Tabla HTML con ID y Mostrar Informacin (PHP,MySQL)
Como anteriormente ya haba mencionado los mtodos para actualizar o buscar un registro,
en esta ocacin vamos a reutilizar el cdigo que hemos estado trabajando y procederemos a
crear una insercin y eliminar un registro. Primero que nada vamos a revisar la sintaxis de
SQL para poder realizar nuestros queries.
INSERT
?
1
INSERT INTO nombre_tabla(column1,column2,columnN)
VALUES(value1,value2,valueN);
DELETE
?
1 DELETE FROM nombre_tabla WHERE identificador = n;

Si ya sabes hacer queries con SQL puedes saltarte esta parte.
Con la sintaxis de Insert podemos agregar un nuevo registro a la tabla que queramos, solo
tenemos que indicar a cual tabla queremos agregar un registro. Tambin debemos de tomar
en cuenta las columnas donde queremos ingresar informacin, as mismo los valores deben
de coincidir con el nmero de columnas. En la sintaxis de Delete seleccionamos de cual
tabla vamos a borrar un registro, sino se especifca cual registro se quiere borrar vamos a
borrar todos los registros de esa tabla, por lo tanto es muy importante que indiquemos la
llave primaria o el nombre de un registro que queramos borrar. Este tutorial es sobre el uso
de php para eliminar un registro por lo tanto no tratare el tema de SQL mas a fondo, sin
embargo ya estoy preparando un tutorial de SQL.
LGICA
Siguiendo con el tutorial de Crear Tabla HTML con ID y Mostrar Informacin
(PHP,MySQL) podemos observar que para actualizar un registro utilizamos el ID asociado
a la persona a editar . En la forma del cdigo tenemos dos botones, del de actualizar y el de
eliminar. Nuestro propsito es saber cual de los botones es presionado, para este fin
utilizamos la funcin array_key_exists() con el cual buscamos el nombre del botn de
eliminar. Una vez identificado que se presion el botn de eliminar trabajamos con el ID
que vamos a eliminar.
Ya con el ID podemos pasarlo como parmetro a nuestro Query y enlazarlo con PDO. Una
vez enlazado el ID ejecutamos el Query y verificamos que no haya habido errores en la
consulta.
EL CDIGO
?
1
2
3
4
5
6
7
8
9
if (array_key_exists('delete', $_POST)) {
$sql = 'DELETE FROM empleado WHERE id_empleado = ?';
$stmt = $conn->prepare($sql);
$OK = $stmt->execute(array($_GET['id']));
$error = $stmt->errorInfo();
if (!$OK) {
echo $error[2];
}
}
Esto es todo el cdigo que utilizamos para eliminar un registro con PHP y PDO. Como se
puede observar no es mucho el cambio que se realiza en el cdigo que utilizamos en el
tutorial de la actualizacin de un registro.
Si tienen dudas sobre este tutorial o por alguna razn no pueden hacerlo funcionar puedo
preguntarlo con mucho gusto. Y como siempre el cdigo lo pueden bajar aqu.
http://behstant.com/blog/?p=635

S-ar putea să vă placă și