/
MysqlModel.php
55 lines (51 loc) · 1.36 KB
/
MysqlModel.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php namespace Devtools;
/**
* MysqlModel
*
* Model for MySQL databases
*
* PHP version 5.3
*
* @category Seago
* @package DEVTOOLS
* @author Jeremy Seago <seagoj@gmail.com>
* @license http://www.opensource.org/licenses/mit-license.html MIT License
* @version GIT:
* @link http://github.com/seagoj/Devtools/MysqlModel.php
**/
class MysqlModel extends PDORepository
{
protected $table = 'users';
protected $primaryKey = 'userid';
protected $required = [];
public function set($assignments, $collection, $where=null)
{
$key = array_keys($assignments);
$fields = array();
foreach ($key as $name) {
array_push($fields, ':'.$name);
}
$sql = "INSERT INTO $collection ("
.self::stringify($key, true, '`')
.") VALUES ("
.implode(',', $fields)
.") ON DUPLICATE KEY UPDATE ";
$first = true;
foreach ($key as $field) {
if (!$first) {
$sql .= ',';
}
$sql .= "`$field`=VALUES(`$field`)";
$first = false;
}
if (!is_null($where)) {
extract(
$this->where($where)
);
$sql .= $where;
} else {
$params = array();
}
return $this->query($sql, array_merge($assignments, $params));
}
}