<?php
$num = 100004313234244; // notice this exceeds 32 bits
$conn = new PDO('sqlite::memory:');
$conn->query('CREATE TABLE users (id INTEGER NOT NULL, num INTEGER NOT NULL, PRIMARY KEY(id))');
$stmt = $conn->prepare('insert into users (id, num) values (:id, :num)');
$stmt->bindValue(':id', 1, PDO::PARAM_INT);
$stmt->bindValue(':num', $num, PDO::PARAM_INT);
$stmt->execute();
$stmt = $conn->query('SELECT num FROM users');
$result = $stmt->fetchAll(PDO::FETCH_COLUMN);
printf("Expected: %d Received: %d\n", $num, $result[0]);
?>
PHP 5.2-dev
Expected: 100004313234244 Received: 100004313234244
PHP 5.3-dev
Expected: 100004313234244 Received: 294714180
PHP 5.4-dev
Expected: 100004313234244 Received: 294714180
PHP 5.5-dev
Expected: 100004313234244 Received: 294714180
PHP master
Expected: 100004313234244 Received: 294714180