Php SQL查询状态
我得到了另一个开发人员编写的一些代码。这是一个php数据库抽象层,我正在努力学习代码,但我不能理解其中的一些内容Php SQL查询状态,php,sql,database-abstraction,Php,Sql,Database Abstraction,我得到了另一个开发人员编写的一些代码。这是一个php数据库抽象层,我正在努力学习代码,但我不能理解其中的一些内容 class QueryBuilderBase { /* * The builder SQLStates. */ const STATE_DIRTY = 0; const STATE_CLEAN = 1; /** * @var array The array of SQL parts collected. */
class QueryBuilderBase
{
/*
* The builder SQLStates.
*/
const STATE_DIRTY = 0;
const STATE_CLEAN = 1;
/**
* @var array The array of SQL parts collected.
*/
private $SQLBlocks = [
'select' => [],
'from' => [],
'join' => [],
'set' => [],
'where' => null,
'groupBy' => [],
'having' => null,
'orderBy' => [],
'values' => [],
'limit' => null
];
/**
*
* Either appends to or replaces a single, generic query part.
*
* The available parts are: 'select', 'from', 'set', 'where',
* 'groupBy', 'having' and 'orderBy'.
*
* @param $sqlPartName
* @param $sqlPart
* @param bool $append
* @return $this
*/
private function addSQLBlock($sqlPartName, $sqlPart, $append = false)
{
$isArray = is_array($sqlPart);
$isMultiple = is_array($this->SQLBlocks[$sqlPartName]);
if ($isMultiple && !$isArray)
$sqlPart = array($sqlPart);
$this->SQLState = self::STATE_DIRTY;
.....(some other code that's not relevant)
}
}
那么,有谁能告诉我他在干什么?州清洁和州肮脏警察的目的是什么
谢谢。我所能想到的就是STATE\u DIRTY/STATE\u CLEAN是一种标志,用于指示由
$this->SQLBlocks
表示的查询体在上次使用该对象时是否已更改。
如果我错了,请有人纠正我确实很难准确判断,但从STATE\u DIRTY/STATE\u CLEAN看,它像某种缓存机制,其中底层数据被修改,但尚未保存到数据库中,因此STATE\u DIRTY您对'SQLState'属性有什么想法吗?是的,几乎所有数据库都使用SQLState来表示各种事件,但它们在不同的方面都有所不同代码及其使用方式。是的,这是某种异常值,可以是0/1。顺便问一下,这是哪个dbms?这是对问题的回答/解决方案还是评论/编辑?对我来说,这是最可能的答案,如果其他人有更准确的答案,我很乐意接受