David Blume commited on 2016-09-11 21:27:29
Showing 1 changed files, with 16 additions and 18 deletions.
| ... | ... |
@@ -13,8 +13,8 @@ try {
|
| 13 | 13 |
if (isset($_GET['k'])) {
|
| 14 | 14 |
// This is a request to get one specific value. |
| 15 | 15 |
$keys = array_map(array($db, 'quote'), explode(',', $_GET['k']));
|
| 16 |
- $result = $db->query('select v from keys where k in ('.implode(',', $keys).')
|
|
| 17 |
- order by updated desc limit 1;', PDO::FETCH_ASSOC); |
|
| 16 |
+ $result = $db->query('SELECT v FROM keys WHERE k IN ('.implode(',', $keys).')
|
|
| 17 |
+ ORDER BY updated DESC LIMIT 1;', PDO::FETCH_ASSOC); |
|
| 18 | 18 |
foreach($result as $row) {
|
| 19 | 19 |
echo $row['v']; |
| 20 | 20 |
} |
| ... | ... |
@@ -25,37 +25,35 @@ if (isset($_GET['k'])) {
|
| 25 | 25 |
exit(0); |
| 26 | 26 |
} |
| 27 | 27 |
|
| 28 |
- // We have an authorized request to add or update a key/value pair. |
|
| 29 |
- $stmt = $db->prepare('select k from keys where k=?');
|
|
| 28 |
+ // We have an authorized request to insert or replace a key/value pair. |
|
| 29 |
+ $stmt = $db->prepare( |
|
| 30 |
+ 'INSERT OR REPLACE INTO keys |
|
| 31 |
+ VALUES (:k, :v, |
|
| 32 |
+ COALESCE((SELECT created FROM keys WHERE k = :k), :rtime), |
|
| 33 |
+ :rtime, :raddr);'); |
|
| 34 |
+ $stmt->bindParam(':rtime', $_SERVER['REQUEST_TIME'], PDO::PARAM_INT);
|
|
| 35 |
+ $stmt->bindParam(':raddr', $_SERVER['REMOTE_ADDR'], PDO::PARAM_STR);
|
|
| 36 |
+ |
|
| 30 | 37 |
foreach($_POST as $key => $value) {
|
| 31 | 38 |
if ($key == 'auth') {
|
| 32 | 39 |
continue; |
| 33 | 40 |
} |
| 34 |
- $stmt->bindParam(1, $key, PDO::PARAM_STR); |
|
| 41 |
+ $stmt->bindParam(':k', $key, PDO::PARAM_STR);
|
|
| 42 |
+ $stmt->bindParam(':v', $value, PDO::PARAM_STR);
|
|
| 35 | 43 |
$stmt->execute(); |
| 36 |
- $row = $stmt->fetch(PDO::FETCH_ASSOC); |
|
| 37 |
- if(!$row) {
|
|
| 38 |
- $db->exec('insert into keys (k, v, created, updated, origin) values ('.
|
|
| 39 |
- $db->quote($key).', '.$db->quote($value).', '. |
|
| 40 |
- $_SERVER['REQUEST_TIME'].', '.$_SERVER['REQUEST_TIME'].', '. |
|
| 41 |
- $db->quote($_SERVER['REMOTE_ADDR']).');'); |
|
| 42 |
- } else {
|
|
| 43 |
- $db->exec('update keys set v = '.$db->quote($value).', updated = '.$_SERVER['REQUEST_TIME'].
|
|
| 44 |
- ', origin = '.$db->quote($_SERVER['REMOTE_ADDR']).' where k = '.$db->quote($key).';'); |
|
| 45 |
- } |
|
| 46 | 44 |
if ($db->errorCode() != '00000') {
|
| 47 | 45 |
echo "Error:", $db->errorInfo()[2], "\n"; |
| 48 | 46 |
} else {
|
| 49 |
- echo 'OK'; |
|
| 47 |
+ echo "OK\n"; |
|
| 50 | 48 |
} |
| 51 | 49 |
} |
| 52 | 50 |
exit(0); |
| 53 | 51 |
} |
| 54 | 52 |
$headers = array("key ","value ","created ","updated ","origin ");
|
| 55 | 53 |
echo implode("\t", $headers)."\n";
|
| 56 |
-$headers = array("-----------","------------","------------","------------","------------");
|
|
| 54 |
+$headers = array("-------------","--------------","------------","------------","------------");
|
|
| 57 | 55 |
echo implode("\t", $headers)."\n";
|
| 58 |
-$result = $db->query('select * from keys', PDO::FETCH_ASSOC);
|
|
| 56 |
+$result = $db->query('SELECT * FROM keys', PDO::FETCH_ASSOC);
|
|
| 59 | 57 |
foreach($result as $row) {
|
| 60 | 58 |
// print_r( $row ); |
| 61 | 59 |
$row['k'] = str_pad($row['k'], 12); |
| 62 | 60 |