$qb = $conn->createQueryBuilder() ->insert('users') ->values( array( 'name' => '?', 'password' => '?' ) );
/** * Specifies values for an insert query indexed by column names. * Replaces any previous values, if any. * * <code> * $qb = $conn->getQueryBuilder() * ->insert('users') * ->values( * array( * 'name' => '?', * 'password' => '?' * ) * ); * </code> * * @param array $values The values to specify for the insert query indexed by column names. * * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance. */ public function values(array $values) { $quotedValues = []; foreach ($values as $key => $value) { $quotedValues[$this->helper->quoteColumnName($key)] = $value; } $this->queryBuilder->values($quotedValues); return $this; }
/** * Specifies values for an insert query indexed by column names. * Replaces any previous values, if any. * * @param array $values The values to specify for the insert query indexed by column names. * @param bool $createNamedParameters Automatically create named parameters for all values * * @return QueryBuilder This QueryBuilder instance. */ public function values(array $values, bool $createNamedParameters = true) : QueryBuilder { if ($createNamedParameters === true) { foreach ($values as &$value) { $value = $this->createNamedParameter($value); } } $this->concreteQueryBuilder->values($this->quoteColumnValuePairs($values)); return $this; }
/** * @test */ public function valuesWithoutNamedParametersQuotesIdentifiersAndDelegatesToConcreteQueryBuilder() { $this->connection->quoteColumnValuePairs(['aField' => 1, 'aValue' => 2])->shouldBeCalled()->willReturnArgument(0); $this->concreteQueryBuilder->values(['aField' => 1, 'aValue' => 2])->shouldBeCalled()->willReturn($this->subject); $this->subject->values(['aField' => 1, 'aValue' => 2], false); }