Postgres PHP ile doğru datypes Okuma

2 Cevap php

How do you compile integer data in Postgres by PHP?

Benim tamsayılar var_dump ( $_SESSION ) tarafından aşağıdaki gösterisi olarak dizge

  'logged_in' => int 1
  'user_id' => string '9' (length=1)                 // should be int
  'a_moderator' => string '0' (length=1)             // should be int

Açıkçası pg_prepare ve pg_execute sonra sorunun kaynağı olduğu aşağıdaki kodla değerleri derleme.

    while ( $row = pg_fetch_array( $result ) ) { 
        $user_id = $row['user_id'];
    }

2 Cevap

Sen kullanarak tamsayılar dizeleri dönüştürebilir intval:

$str = "5";
$num = intval($str);

ya da tip zorlama:

$str = "5";
$num = (int) $str;

//this works too
$num = (integer) $str;

bazı test kodu:

<?php
   $str = "10";
   $num = intval($str);
   //$num = (int)$str;

   if ($str === 10) echo "String";
   if ($num === 10) echo "Integer";
?>

Daha fazla okuma:

Type Jugging

PHP veritabanı uzantıları dize olarak tüm veri türlerini döndürmek için bazı SQL veri türleri PHP yerel veri türleri temsil edilemez, çünkü sıradan bulunuyor.

Örnek: PostgreSQL BIGINT (8 bayt tamsayı veri türü) int PHP tipini (PHP 64-bit desteği ile derlenmiş sürece) taşar, ve {[(2 dökülebilirler doğruluk kaybedebilirsiniz)]} ki.