<?php
error_reporting(E_ALL);
$db = new PDO("sqlite::memory:");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$queries = array(
"CREATE TABLE users (
userid INT PRIMARY KEY,
name TEXT,
country TEXT,
referred_by_userid INT
)",
"INSERT INTO users
(userid, name, country, referred_by_userid)
VALUES (104, 'Chris', 'Ukraine', NULL)",
"INSERT INTO users
(userid, name, country, referred_by_userid)
VALUES (105, 'Jamie', 'England', NULL)",
"INSERT INTO users
(userid, name, country, referred_by_userid)
VALUES (107, 'Robin', 'Germany', 104)",
"INSERT INTO users
(userid, name, country, referred_by_userid)
VALUES (108, 'Sean', 'Ukraine', NULL)",
"INSERT INTO users
(userid, name, country, referred_by_userid)
VALUES (109, 'Toni', 'Germany', NULL)",
"INSERT INTO users
(userid, name, country, referred_by_userid)
VALUES (110, 'Toni', 'Germany', NULL)",
"INSERT INTO users
(userid, name, country, referred_by_userid)
VALUES (111, 'Sean', 'France', NULL)",
);
foreach ($queries as $query) {
$db->exec($query);
}
$query = "SELECT userid, name, country, referred_by_userid FROM users";
$fetchMode = PDO::FETCH_COLUMN | PDO::FETCH_GROUP;
print "\nfetchAll (no column specified):\n";
$stmt = $db->query($query);
$result = $stmt->fetchAll($fetchMode);
print_r($result);
print "\nfetchAll (col 2):\n";
$stmt = $db->query($query);
$result = $stmt->fetchAll($fetchMode, 2);
print_r($result);
$query = "SELECT country, name, userid FROM users";
print "\nfetchAll (by country, no column specified):\n";
# Values are column 1, group is column 0
$stmt = $db->query($query);
$result = $stmt->fetchAll($fetchMode);
print_r($result);
print "\nfetchAll (by country, col 0):\n";
# Values are column 0, group is column 0
$stmt = $db->query($query);
$result = $stmt->fetchAll($fetchMode, 0);
print_r($result);
print "\nfetchAll (by country, col 1):\n";
# Values are column 0, group is column 0
$stmt = $db->query($query);
$result = $stmt->fetchAll($fetchMode, 1);
print_r($result);
print "\nfetchAll (by country, col 2):\n";
# Values are column 0, group is column 1
$stmt = $db->query($query);
$result = $stmt->fetchAll($fetchMode, 2);
print_r($result);
preferences:
49.26 ms | 405 KiB | 5 Q