| 144 | | // With MySQL/MySQLi/SQLite, REPLACE INTO avoids a user having two rows in the online table |
|---|
| 145 | | switch ($db_type) |
|---|
| 146 | | { |
|---|
| 147 | | case 'pgsql': |
|---|
| 148 | | $query = 'INSERT INTO '.$db->prefix.'online (user_id, ident, logged, csrf_token, prev_url) SELECT '.$pun_user['id'].', \''.$db->escape($pun_user['username']).'\', '.$pun_user['logged'].', \''.$pun_user['csrf_token'].'\', \''.$db->escape($pun_user['prev_url']).'\' FROM '.$db->prefix.'users WHERE id = '.$pun_user['id'].' AND NOT EXISTS (SELECT 1 FROM '.$db->prefix.'online WHERE user_id='.$pun_user['id'].')'; |
|---|
| 149 | | ($hook = get_hook('fn_qr_add_online_user')) ? eval($hook) : null; |
|---|
| 150 | | $db->query($query) or error(__FILE__, __LINE__); |
|---|
| 151 | | break; |
|---|
| 152 | | |
|---|
| 153 | | default: |
|---|
| 154 | | $query = array( |
|---|
| 155 | | 'REPLACE' => 'user_id, ident, logged, csrf_token, prev_url', |
|---|
| 156 | | 'INTO' => 'online', |
|---|
| 157 | | 'VALUES' => $pun_user['id'].', \''.$db->escape($pun_user['username']).'\', '.$pun_user['logged'].', \''.$pun_user['csrf_token'].'\', \''.$db->escape($pun_user['prev_url']).'\'' |
|---|
| 158 | | ); |
|---|
| 159 | | ($hook = get_hook('fn_qr_add_online_user')) ? eval($hook) : null; |
|---|
| 160 | | $db->query_build($query) or error(__FILE__, __LINE__); |
|---|
| 161 | | break; |
|---|
| 162 | | } |
|---|
| | 144 | // REPLACE INTO avoids a user having two rows in the online table |
|---|
| | 145 | $query = array( |
|---|
| | 146 | 'REPLACE' => 'user_id, ident, logged, csrf_token, prev_url', |
|---|
| | 147 | 'INTO' => 'online', |
|---|
| | 148 | 'VALUES' => $pun_user['id'].', \''.$db->escape($pun_user['username']).'\', '.$pun_user['logged'].', \''.$pun_user['csrf_token'].'\', \''.$db->escape($pun_user['prev_url']).'\'', |
|---|
| | 149 | 'UNIQUE' => 'user_id='.$pun_user['id'] |
|---|
| | 150 | ); |
|---|
| | 151 | ($hook = get_hook('fn_qr_add_online_user')) ? eval($hook) : null; |
|---|
| | 152 | $db->query_build($query) or error(__FILE__, __LINE__); |
|---|
| 255 | | // With MySQL/MySQLi/SQLite, REPLACE INTO avoids a user having two rows in the online table |
|---|
| 256 | | switch ($db_type) |
|---|
| 257 | | { |
|---|
| 258 | | case 'pgsql': |
|---|
| 259 | | $query = 'INSERT INTO '.$db->prefix.'online (user_id, ident, logged, csrf_token, prev_url) SELECT 1, \''.$db->escape($remote_addr).'\', '.$pun_user['logged'].', \''.$pun_user['csrf_token'].'\', \''.$db->escape($pun_user['prev_url']).'\' FROM '.$db->prefix.'users WHERE id=1 AND NOT EXISTS (SELECT 1 FROM '.$db->prefix.'online WHERE user_id=1 AND ident=\''.$db->escape($remote_addr).'\')'; |
|---|
| 260 | | ($hook = get_hook('fn_qr_add_online_guest_user')) ? eval($hook) : null; |
|---|
| 261 | | $db->query($query) or error(__FILE__, __LINE__); |
|---|
| 262 | | break; |
|---|
| 263 | | |
|---|
| 264 | | default: |
|---|
| 265 | | $query = array( |
|---|
| 266 | | 'REPLACE' => 'user_id, ident, logged, csrf_token, prev_url', |
|---|
| 267 | | 'INTO' => 'online', |
|---|
| 268 | | 'VALUES' => '1, \''.$db->escape($remote_addr).'\', '.$pun_user['logged'].', \''.$pun_user['csrf_token'].'\', \''.$db->escape($pun_user['prev_url']).'\'' |
|---|
| 269 | | ); |
|---|
| 270 | | ($hook = get_hook('fn_qr_add_online_guest_user')) ? eval($hook) : null; |
|---|
| 271 | | $db->query_build($query) or error(__FILE__, __LINE__); |
|---|
| 272 | | break; |
|---|
| 273 | | } |
|---|
| | 245 | // REPLACE INTO avoids a user having two rows in the online table |
|---|
| | 246 | $query = array( |
|---|
| | 247 | 'REPLACE' => 'user_id, ident, logged, csrf_token, prev_url', |
|---|
| | 248 | 'INTO' => 'online', |
|---|
| | 249 | 'VALUES' => '1, \''.$db->escape($remote_addr).'\', '.$pun_user['logged'].', \''.$pun_user['csrf_token'].'\', \''.$db->escape($pun_user['prev_url']).'\'', |
|---|
| | 250 | 'UNIQUE' => 'user_id=1 AND ident=\''.$db->escape($remote_addr).'\'' |
|---|
| | 251 | ); |
|---|
| | 252 | ($hook = get_hook('fn_qr_add_online_guest_user')) ? eval($hook) : null; |
|---|
| | 253 | $db->query_build($query) or error(__FILE__, __LINE__); |
|---|