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.