Autor Tema: Como verificar si se inserto un registro con PDO  (Leído 5229 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado pippin

  • Sv Member
  • ***
  • Mensajes: 301
Como verificar si se inserto un registro con PDO
« : abril 01, 2011, 01:32:03 pm »
Tengo este codigo donde inserto un nuevo registro

Código: [Seleccionar]
$insertar = $db->prepare("INSERT INTO tb_vendedores VALUES (0,:cedula,:nombre,:direccion,:correo,:celular,:telefono,:ciudad,:estado)");
$insertar->bindParam(":cedula", $_POST['cedula'], PDO::PARAM_INT);
$insertar->bindParam(":nombre", strtoupper($_POST['nombre']), PDO::PARAM_STR);
$insertar->bindParam(":direccion", strtoupper($_POST['direccion']), PDO::PARAM_STR);
$insertar->bindParam(":correo", $_POST['correo'], PDO::PARAM_STR);
$insertar->bindParam(":celular", $_POST['celular'], PDO::PARAM_INT);
$insertar->bindParam(":telefono", $_POST['telefono'], PDO::PARAM_INT);
$insertar->bindParam(":ciudad", strtoupper($_POST['ciudad']), PDO::PARAM_STR);
$insertar->bindParam(":estado", $_POST['estado'], PDO::PARAM_STR);
$insertar->execute();

if($insertar->rowCount() > 0){
echo "Bien";
}else{
echo "error";
}

Asi funciona correctamente solo que mi duda es si es la mejor forma de hacerlo. Gracias

Conectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: Como verificar si se inserto un registro con PDO
« Respuesta #1 : abril 01, 2011, 01:51:27 pm »
Si normalmente así como lo tenes es, el execute devuelve True o False según lo que paso, y luego con rowcount verificas que afectaste por lo menos 1 fila

Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
Re: Como verificar si se inserto un registro con PDO
« Respuesta #2 : abril 01, 2011, 02:03:54 pm »
asi funciona ... para q se t haga mas facil usa ? en vez d usar :name .




Desconectado pippin

  • Sv Member
  • ***
  • Mensajes: 301
Re: Como verificar si se inserto un registro con PDO
« Respuesta #3 : abril 01, 2011, 02:32:36 pm »
Ok, gracias por sus respuestas ahora es lo siguiente

Código: [Seleccionar]
$codigo = $_GET['codigo'];

if(isset($codigo) && is_numeric($codigo)){

$cliente = "SELECT cod_cli_pro FROM tb_facturas WHERE cod_cli_pro = $codigo AND tipofact = 1";
$resultado = $db->exec($cliente);

if($resultado == 0 ){

$consulta = "DELETE FROM tb_clientes WHERE codiclie = $codigo";
$borrar = $db->exec($consulta);

if($borrar > 0){

//Consulto la fecha actual
$hoy = date("Y-m-d h-i-s", time());

//Accion que se registra en la tabla eventos
$accion = "El Cliente <b>" . $_GET['cliente'] . " fue eliminado</b>";

//Inserto el registro de eventos
$evento = $db->prepare("INSERT INTO tb_eventos VALUES (0,:accion,:usuario,:fecha)");
$evento->bindParam(":accion", $accion, PDO::PARAM_STR);
$evento->bindParam(":usuario", $_SESSION['username'], PDO::PARAM_STR);
$evento->bindParam(":fecha", $hoy, PDO::PARAM_STR);
$evento->execute();

$db = null;

alert('Registro eliminado!');
redirect('../../vistas/clientes.php');

}else{
echo $resultado;
alert('Error al eliminar, intente de nuevo');
redirect('../../vistas/clientes.php');
}

}else{
alert('El Cliente tiene regitros de facturas de ventas\nEl registro no puede ser eliminado');
redirect('../../vistas/clientes.php');
}
}else{
alert('Seleccione nuevamente el resgistro a eliminar');
redirect('../../vistas/clientes.php');
}

Quiero saber si la consulta no devuelve resgistro que se elimine el registro de lo contrario que muestre un mensaje asi esta bien, pues les pregunto por que no meda  (esta mal verdad  :D)

Desconectado Camus de Acuario

  • The Communiter-
  • *
  • Mensajes: 8455
  • Ōrora Ekusukyūshon!
Re: Como verificar si se inserto un registro con PDO
« Respuesta #4 : abril 01, 2011, 02:58:15 pm »
Dos cosas:

1- Podes imprimir cada query para ver si las estas montando bien
2- Estas juntando php con javascript, alert() es una funcion de js.

Desconectado pippin

  • Sv Member
  • ***
  • Mensajes: 301
Re: Como verificar si se inserto un registro con PDO
« Respuesta #5 : abril 01, 2011, 03:19:16 pm »
Bueno respecto a tu segundo punto si estoy utilizando js para hacer el alert ya me diran ustedes que esto esta mal y yo lo entiendo pero com hago para hacer algo similar a la ventanita del alert en php sin js

Código: [Seleccionar]
function alert($msg){
echo "<script type='text/javascript'>";
echo "alert('".$msg."')";
echo "</script>";
}

Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
Re: Como verificar si se inserto un registro con PDO
« Respuesta #6 : abril 01, 2011, 03:33:05 pm »
mejor has un echo para ir viendo los resultados q vas teniendo, o ponlos en un div q se haga visible.... lo puedes hacer con php y inline css .

nose depende d tu gusto