Files
zhamao-framework/src/ZM/DB/Table.php

99 lines
2.1 KiB
PHP
Raw Normal View History

<?php
/**
* @noinspection PhpMissingReturnTypeInspection
* @noinspection PhpUnused
*/
2020-03-02 16:14:20 +08:00
declare(strict_types=1);
2020-03-02 16:14:20 +08:00
namespace ZM\DB;
2021-07-09 01:38:30 +08:00
/**
* Class Table
* @deprecated This will delete in 2.6 or future version, use \ZM\MySQL\MySQLManager::getConnection() instead
*/
2020-03-02 16:14:20 +08:00
class Table
{
/** @var SelectBody[] */
public $cache = [];
private $table_name;
2020-03-02 16:14:20 +08:00
private static $table_instance = [];
public function __construct($table_name)
{
2020-03-02 16:14:20 +08:00
$this->table_name = $table_name;
self::$table_instance[$table_name] = $this;
}
public static function getTableInstance($table_name)
{
if (isset(self::$table_instance[$table_name])) {
return self::$table_instance[$table_name];
}
return null;
2020-03-02 16:14:20 +08:00
}
public function select($what = [])
{
return new SelectBody($this, $what == [] ? ['*'] : $what);
2020-03-02 16:14:20 +08:00
}
public function where($column, $operation_or_value, $value = null)
{
return (new SelectBody($this, ['*']))->where($column, $operation_or_value, $value);
2020-03-02 16:14:20 +08:00
}
public function insert($row)
{
2020-03-02 16:14:20 +08:00
$this->cache = [];
return new InsertBody($this, $row);
}
public function update(array $set_value)
{
2020-03-02 16:14:20 +08:00
$this->cache = [];
return new UpdateBody($this, $set_value);
}
public function delete()
{
2020-03-02 16:14:20 +08:00
$this->cache = [];
return new DeleteBody($this);
}
public function statement()
{
2020-03-02 16:14:20 +08:00
$this->cache = [];
// TODO: 无返回的statement语句
2020-03-02 16:14:20 +08:00
}
public function paintWhereSQL($rule, $operator)
{
if ($rule == []) {
return ['', []];
}
$msg = '';
2020-03-02 16:14:20 +08:00
$param = [];
foreach ($rule as $k => $v) {
if ($msg == '') {
$msg .= $k . " {$operator} ? ";
2020-03-02 16:14:20 +08:00
} else {
$msg .= ' AND ' . $k . " {$operator} ?";
2020-03-02 16:14:20 +08:00
}
$param[] = $v;
}
return [$msg, $param];
}
/**
* @return mixed
*/
public function getTableName()
{
return $this->table_name;
}
2020-11-03 21:02:24 +08:00
}