system/Database/BaseBuilder.php
protected function setBind(string $key, $value = null, bool $escape = true): string
	{
		if (! array_key_exists($key, $this->binds))
		{
			$this->binds[$key] = [
				$value,
				$escape,
			];

			return $key;
		}

		$count = 0;

		while (array_key_exists($key . $count, $this->binds))
		{
			++$count;
		}

		$this->binds[$key . $count] = [
			$value,
			$escape,
		];

		return $key . $count;
	}
protected function setBind(string $key, $value = null, bool $escape = true): string
	{
		if (! array_key_exists($key, $this->binds))
		{
			$this->binds[$key] = [
				$value,
				$escape,
			];

			return $key;
		}

		$count = 0;

		while (array_key_exists($key . $count, $this->binds))
		{
			++$count;
		}

		$this->binds[$key . $count] = [
			$value,
			$escape,
		];

		return $key . $count;
	}
Stores a bind value after ensuring that it's unique.
While it might be nicer to have named keys for our binds array
with PHP 7+ we get a huge memory/performance gain with indexed
arrays instead, so lets take advantage of that here.

@param string  $key
@param mixed   $value
@param boolean $escape

@return string