Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Resultado de fetch pierde tipo de campo

Estas en el tema de Resultado de fetch pierde tipo de campo en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 21/04/2017, 14:05
Avatar de 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.
  #2 (permalink)  
Antiguo 21/04/2017, 14:13
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Resultado de fetch pierde tipo de campo

Dale intval a la variable

Edito:

No necesitas más:

SELECT max(id) FROM table

Última edición por alvaro_trewhela; 21/04/2017 a las 14:49
  #3 (permalink)  
Antiguo 21/04/2017, 15:05
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Resultado de fetch pierde tipo de campo

Esa no es la forma de hacerlo, si llegas a tener consultas concurrentes vas a calcular mal el siguiente valor para el id.
Rquieres crear algo que lo calcule aparte.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #4 (permalink)  
Antiguo 21/04/2017, 15:20
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años
Puntos: 7
Respuesta: Resultado de fetch pierde tipo de campo

Cita:
Iniciado por hhs Ver Mensaje
Esa no es la forma de hacerlo, si llegas a tener consultas concurrentes vas a calcular mal el siguiente valor para el id.
Rquieres crear algo que lo calcule aparte.
Guardar el valor de dicho campo en una tabla aparte e incrementarlo desde allí?
__________________
Todos somos iguales. NO! a la violencia de género.

Etiquetas: bd, campo, fetch, pierde, registro, resultado, select, sql, tipo
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 21:17.