pgsql - php postgresql example
Lectura de los datálogos correctamente por PHP desde Postgres (2)
Es normal que las extensiones de bases de datos PHP devuelvan todos los tipos de datos como cadenas, porque algunos tipos de datos SQL no se pueden representar en tipos de datos nativos de PHP.
Ejemplo: PostgreSQL BIGINT
(tipo de datos entero de 8 bytes) desbordará el tipo de PHP int
(a menos que PHP se compile con soporte de 64 bits), y se lanzará como float
que podría perder exactitud.
¿Cómo compila datos enteros en Postgres por PHP?
Mis enteros son de cadena como el siguiente show por var_dump ( $_SESSION )
''logged_in'' => int 1
''user_id'' => string ''9'' (length=1) // should be int
''a_moderator'' => string ''0'' (length=1) // should be int
Compilo los valores con el siguiente código, que obviamente es la fuente del problema después de pg_prepare
y pg_execute
.
while ( $row = pg_fetch_array( $result ) ) {
$user_id = $row[''user_id''];
}
Puede convertir cadenas en enteros usando intval :
$str = "5";
$num = intval($str);
o por tipo de coacción:
$str = "5";
$num = (int) $str;
//this works too
$num = (integer) $str;
algún código de prueba:
<?php
$str = "10";
$num = intval($str);
//$num = (int)$str;
if ($str === 10) echo "String";
if ($num === 10) echo "Integer";
?>
Otras lecturas: