setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
function createTable($db) {
$db->exec("CREATE TABLE IF NOT EXISTS kv (id INTEGER PRIMARY KEY, key TEXT NOT NULL UNIQUE, value TEXT NOT NULL)");
}
createTable($db);
if (isset($_POST['token']) && isset($_POST['key']) && isset($_POST['value'])) {
if ($_POST['token'] != $_SESSION['token']) {
exit();
}
try {
$stmt = $db->prepare("REPLACE INTO kv (key,value) VALUES (:key,:value)");
$stmt->execute(array(
':key' => $_POST['key'],
':value' => $_POST['value']
));
$data['count'] = $stmt->rowCount();
echo json_encode($data);
} catch(PDOException $e) {
/*** echo the sql statement and error message ***/
echo $sql . '
' . $e->getMessage();
}
exit();
} else if (isset($_GET['key'])) {
try {
$stmt = $db->prepare("SELECT value FROM kv WHERE key = :key");
$stmt->execute(array(
':key' => $_GET['key'],
));
if ($row = $stmt->fetch()) {
$data['value'] = $row['value'];
} else {
$data['error'] = "key not found";
}
echo json_encode($data);
} catch(PDOException $e) {
/*** echo the sql statement and error message ***/
echo $sql . '
' . $e->getMessage();
}
exit();
} else { ?>