<?php
/*
PDO-SQLite Example using prepared statements with IN Clause
*/
echo "<pre>";
try {
$db = new PDO('sqlite:/tmp/mydb.sq3');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if (!$db->query('SELECT * FROM test') && stripos($db->errorInfo()[2], 'no such table') !== FALSE) { $db->query("CREATE TABLE test (id INTEGER PRIMARY KEY, data VARCHAR(50))");
$stmt = $db->prepare("INSERT INTO test(data) VALUES(?)");
foreach (array('foo','bar','baz','quix') as $d) { $stmt->execute(array($d)); }
}
$stmt = $db->prepare("SELECT * FROM test WHERE id IN ($params)");
$stmt->execute($args);
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row => $data) {
echo "Row #$row:\t\t{$data['id']}\t{$data['data']}\n";
}
}
catch(PDOException $e) {
echo "Connection failed: {$e->getMessage()}\n";
}
echo "</pre>";
?>
PD9waHAKCgkvKgoJCVBETy1TUUxpdGUgRXhhbXBsZSB1c2luZyBwcmVwYXJlZCBzdGF0ZW1lbnRzIHdpdGggSU4gQ2xhdXNlCgkqLwoKICAgICAgICBlY2hvICI8cHJlPiI7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICRkYiA9IG5ldyBQRE8oJ3NxbGl0ZTovdG1wL215ZGIuc3EzJyk7CgkJJGRiLT5zZXRBdHRyaWJ1dGUoUERPOjpBVFRSX0VSUk1PREUsIFBETzo6RVJSTU9ERV9FWENFUFRJT04pOwogICAgICAgICAgICAgICAgaWYgKCEkZGItPnF1ZXJ5KCdTRUxFQ1QgKiBGUk9NIHRlc3QnKSAmJiBzdHJpcG9zKCRkYi0+ZXJyb3JJbmZvKClbMl0sICdubyBzdWNoIHRhYmxlJykgIT09IEZBTFNFKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRkYi0+cXVlcnkoIkNSRUFURSBUQUJMRSB0ZXN0IChpZCBJTlRFR0VSIFBSSU1BUlkgS0VZLCBkYXRhIFZBUkNIQVIoNTApKSIpOwogICAgICAgICAgICAgICAgICAgICAgICAkc3RtdCA9ICRkYi0+cHJlcGFyZSgiSU5TRVJUIElOVE8gdGVzdChkYXRhKSBWQUxVRVMoPykiKTsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoYXJyYXkoJ2ZvbycsJ2JhcicsJ2JheicsJ3F1aXgnKSBhcyAkZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCRkKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCQkkYXJncyA9IGFycmF5KDEsMyw0KTsKCQkkcGFyYW1zID0gaW1wbG9kZSgnLCcsYXJyYXlfZmlsbCgwLCBjb3VudCgkYXJncyksICc/JykpOwoJCSRzdG10ID0gJGRiLT5wcmVwYXJlKCJTRUxFQ1QgKiBGUk9NIHRlc3QgV0hFUkUgaWQgSU4gKCRwYXJhbXMpIik7CgkJJHN0bXQtPmV4ZWN1dGUoJGFyZ3MpOwogICAgICAgICAgICAgICAgZm9yZWFjaCAoJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpIGFzICRyb3cgPT4gJGRhdGEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiUm93ICMkcm93Olx0XHR7JGRhdGFbJ2lkJ119XHR7JGRhdGFbJ2RhdGEnXX1cbiI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoKFBET0V4Y2VwdGlvbiAkZSkgewogICAgICAgICAgICAgICAgZWNobyAiQ29ubmVjdGlvbiBmYWlsZWQ6IHskZS0+Z2V0TWVzc2FnZSgpfVxuIjsKICAgICAgICB9CiAgICAgICAgZWNobyAiPC9wcmU+IjsKPz4=