original_string: final public function insert($table, $args=[], $pk=null) {
  
  		$keys = $vals = [];
  		$keys = array_keys($args);
  		$vals = array_fill(0, count($args), '?');
  
  		$columns = implode(',', $keys);
  		$placeholders = implode(',', $vals);
  
  		$stmt = "INSERT INTO $table ($columns) VALUES ($placeholders)";
  		if ($this->dbtype == 'pgsql')
  			$stmt .= " RETURNING " . ($pk ? $pk : '*');
  
  		$pstmt = $this->prepare_statement($stmt, $args);
  
  		if ($this->dbtype == 'pgsql') {
  			$last = $pstmt->fetch(\PDO::FETCH_ASSOC);
  			$ret = $pk ? $last[$pk] : $last;
  		} else {
  			$ret = $this->connection->lastInsertId();
  		}
  
  		self::$logger->info(sprintf(
  			"SQL: insert ok: %s <- '%s'.",
  			$stmt, json_encode($args)));
  		return $ret;
  	}
code: final public function insert($table, $args=[], $pk=null) {
  
  		$keys = $vals = [];
  		$keys = array_keys($args);
  		$vals = array_fill(0, count($args), '?');
  
  		$columns = implode(',', $keys);
  		$placeholders = implode(',', $vals);
  
  		$stmt = "INSERT INTO $table ($columns) VALUES ($placeholders)";
  		if ($this->dbtype == 'pgsql')
  			$stmt .= " RETURNING " . ($pk ? $pk : '*');
  
  		$pstmt = $this->prepare_statement($stmt, $args);
  
  		if ($this->dbtype == 'pgsql') {
  			$last = $pstmt->fetch(\PDO::FETCH_ASSOC);
  			$ret = $pk ? $last[$pk] : $last;
  		} else {
  			$ret = $this->connection->lastInsertId();
  		}
  
  		self::$logger->info(sprintf(
  			"SQL: insert ok: %s <- '%s'.",
  			$stmt, json_encode($args)));
  		return $ret;
  	}
code_tokens: final public function insert ( $ table , $ args = [ ] , $ pk = null ) { $ keys = $ vals = [ ] ; $ keys = array_keys ( $ args ) ; $ vals = array_fill ( 0 , count ( $ args ) , '?' ) ; $ columns = implode ( ',' , $ keys ) ; $ placeholders = implode ( ',' , $ vals ) ; $ stmt = "INSERT INTO $table ($columns) VALUES ($placeholders)" ; if ( $ this -> dbtype == 'pgsql' ) $ stmt .= " RETURNING " . ( $ pk ? $ pk : '*' ) ; $ pstmt = $ this -> prepare_statement ( $ stmt , $ args ) ; if ( $ this -> dbtype == 'pgsql' ) { $ last = $ pstmt -> fetch ( \ PDO :: FETCH_ASSOC ) ; $ ret = $ pk ? $ last [ $ pk ] : $ last ; } else { $ ret = $ this -> connection -> lastInsertId ( ) ; } self :: $ logger -> info ( sprintf ( "SQL: insert ok: %s <- '%s'." , $ stmt , json_encode ( $ args ) ) ) ; return $ ret ; }
docstring: Insert statement.
  
  @param string $table Table name.
  @param array $args Dict of what to INSERT.
  @param string $pk Primary key from which last insert ID should
  be retrieved. This won't take any effect on databases other
  than Postgres. This can take any column name, not necessarily
  column with PRIMARY KEY attributes. If left null, the whole
  new row is returned as an array. Using invalid column will
  throw exception.
  @return int|array Last insert ID or IDs on success. Exception
  thrown on error.
docstring_tokens: Insert statement .