protected function sqlupdate(array $fields, array $nums = null, array $bools = null) {
		$db = $this->db;

		$idfield = $this->idfield();

		$nums != null or $nums = [];
		$bools != null or $bools = [];

		$keys = array_diff(array_keys($fields), [ $idfield ]);
		$strs = array_diff(array_keys($fields), $bools, $nums);

		$setters = \hlin\Arr::join(",\n\t\t\t\t\t       ", $keys, function ($_, $val) {
			return "`$val` = :$val";
		});

		$db->prepare
			(
				"	UPDATE `[table]`
					   SET $setters
					 WHERE `$idfield` = :$idfield
				",
				[ 'table' => $this->constants()['table'] ]
			)
			->strs($fields, $strs)
			->bools($fields, $bools)
			->nums($fields, $nums)
			->execute();

		return $fields[$idfield];
	}