Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/04/2017, 14:05
Avatar de bandolera
bandolera
 
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años
Puntos: 7
Pregunta Resultado de fetch pierde tipo de campo

Tengo una tabla con un campo id que es integer unsigned not null. No es autoincrement por diseño.
Se incrementa por código.
Quiero obtener el valor máximo de dicho campo e incrementarlo en uno.
Pero al retornar el fetch el campo no es numérico.
Y si la tabla no tiene registros debo iniciar en uno el id.
Este es el código que tengo.

Código PHP:
$sql "SELECT max(id) as valorId FROM table";
$sth $BD->prepare($sql);
$sth->execute();

$valor   $sth->fetch(PDO::FETCH_ASSOC);
$valorId $valor['valorId'];   // No devuelve valor numérico. Devuelve un STRING.

if (is_null($valorId)){  // Si no hay registros el campo es NULL.
    
$valorId 0;
}

if (
is_string($valorId)){  //
    
$valorId intval($valorId) + 1;

No existe una forma de hacer que el resultado sea numérico para reducir código?
Gracias.
__________________
Todos somos iguales. NO! a la violencia de género.