Tengo varios campos en mi base de datos que son valores DECIMAL (10,2) o INT, cuando devuelvo los resultados, todo se devuelve como una cadena.
Ejemplo:
$sql = "SELECT id, operacion_id FROM operaciones"; $query = $this->db->query($sql); $result = $query->getResultArray(); return $this->response->setStatusCode(200) ->setContentType('application/json') ->setJSON($result);Y eso devuelve:
[{ "id": "31", "operacion_id": "ES-2021-0031" }, { "id": "30", "operacion_id": "ES-2021-0030" }]Traté de poner directamente en el método system\Database\MySQLi\Connection.php connect():
$this->mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, true);Esto funciona bien, pero sé que no es seguro para actualizar.
Debería poder aplicar esta opción a la propiedad mysqli de su objeto de base de datos.
$this->db->mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, true); // and then run your queries $query = $this->db->query($sql);Cuando trabaje con declaraciones preparadas, no tiene que aplicar esta configuración ya que las declaraciones preparadas siempre devuelven los datos en el tipo correcto.