code: public function prepare($strQuery)
  	{
  		if ($strQuery == '')
  		{
  			throw new \Exception('Empty query string');
  		}
  
  		$this->strQuery = trim($strQuery);
  
  		// Auto-generate the SET/VALUES subpart
  		if (strncasecmp($this->strQuery, 'INSERT', 6) === 0 || strncasecmp($this->strQuery, 'UPDATE', 6) === 0)
  		{
  			$this->strQuery = str_replace('%s', '%p', $this->strQuery);
  		}
  
  		// Replace wildcards
  		$arrChunks = preg_split("/('[^']*')/", $this->strQuery, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
  
  		foreach ($arrChunks as $k=>$v)
  		{
  			if (substr($v, 0, 1) == "'")
  			{
  				continue;
  			}
  
  			$arrChunks[$k] = str_replace('?', '%s', $v);
  		}
  
  		$this->strQuery = implode('', $arrChunks);
  
  		return $this;
  	}
docs: Prepare a query string so the following functions can handle it
  
  @param string $strQuery The query string
  
  @return Statement The statement object
  
  @throws \Exception If $strQuery is empty