Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con mysql_insert_id(); devuelve 0

Estas en el tema de Problema con mysql_insert_id(); devuelve 0 en el foro de PHP en Foros del Web. Hola cómo están? espero algún experto me pueda ayudar con este inconveniente... Al usar mysql_insert_id(); me retorna 0, la tabla en la que lo uso ...
  #1 (permalink)  
Antiguo 29/09/2015, 10:43
 
Fecha de Ingreso: agosto-2015
Ubicación: Bogotá D.C
Mensajes: 5
Antigüedad: 4 años
Puntos: 0
Problema con mysql_insert_id(); devuelve 0

Hola cómo están? espero algún experto me pueda ayudar con este inconveniente...
Al usar mysql_insert_id(); me retorna 0, la tabla en la que lo uso tiene un campo auto_increment.

Pongo el código:
clase conectar:
<?php
class Conectar {
private $db;
public function Conectar()
{
$this->db = new mysqli('localhost', 'root', '', 'Nominaok');
if($this->db->connect_errno > 0)
{
die('Imposible conectar [' . $this->db->connect_error . ']');
}
}
public function ejecutar($sentence)
{
try{
$this->db->query($sentence);
return true;
} catch (Exception $ex) {
die("error al ejecutar la sentencia".$ex);
return false;
}
}
public function consultar($sentence)
{
try{
$resultado=$this->db->query($sentence);
} catch (Exception $ex) {
die("error al ejecutar la sentencia".$ex);
}
return $resultado;
}
}
?>

y la clase que realiza la consulta:
Código PHP:
<?php
require_once 'Conectar.php';

class 
sueldoDAO {
    function 
guardarSueldo($valorTotal$fecha){
        
$con = new Conectar();
        
$sentencia "insert into sueldo (`ValorPagado`, `FechaRegistro`) values ('$valorTotal','$fecha')";
        
$resul $con->ejecutar($sentencia);
        
$id =mysql_insert_id();
        return 
$id
    }
}
?>
Espero puedan ayudarme
  #2 (permalink)  
Antiguo 29/09/2015, 11:36
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 9 años, 8 meses
Puntos: 4
Respuesta: Problema con mysql_insert_id(); devuelve 0

Lo que necesitas es consultar la referencia del objeto con el que realizaste el query, mysql_insert_id() no significa nada sin esa referencia por eso tienes 0 como resultado. En tu clase de coneccion debes crear un metodo que te devuelva el id, algo como:

Código PHP:
Ver original
  1. function getUltimoid(){
  2. return   $this->db->mysql_insert_id;
  3. }

Puedes revisar la documentación aquí: http://php.net/manual/es/mysqli.insert-id.php
Saludos
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com
  #3 (permalink)  
Antiguo 29/09/2015, 12:42
 
Fecha de Ingreso: agosto-2015
Ubicación: Bogotá D.C
Mensajes: 5
Antigüedad: 4 años
Puntos: 0
Respuesta: Problema con mysql_insert_id(); devuelve 0

Muchas gracias por la respuesta, usando un método en la clase conectar me funciono a la perfección

Etiquetas: devuelve, fecha, mysql, registro, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:38.