NAME
Fey::SQL::Insert - Represents a INSERT query
SYNOPSIS
my $sql = Fey::SQL->new_insert();
# INSERT INTO Part
# (part_id, name, quantity)
# VALUES
# (?, ?, ?)
$sql->insert()->into($Part);
my $ph = Fey::Placeholder->new();
$sql->values( part_id => $ph,
name => $ph,
quantity => $ph,
);
print $sql->sql($dbh);
DESCRIPTION
This class represents a INSERT
query.
METHODS
This class provides the following methods:
Constructor
To construct an object of this class, call $query->insert()
on a Fey::SQL
object.
$insert->insert()
This method is basically a no-op that exists to so that Fey::SQL has something to call after it constructs an object in this class.
$insert->into()
This method specifies the INTO
clause of the query. It expects a list of Fey::Column and/or Fey::Table objects, but not aliases.
If you pass a table object, then the INTO
will include all of that table's columns, in the order returned by the $table->columns()
method.
Most RDBMS implementations only allow for a single table here, but some (like MySQL) do allow for multi-table inserts.
$insert->values(...)
This method takes a hash where the keys are column names, and values are the value to be inserted for that column. Each value can be of the following:
a plain scalar, including undef
This will be passed to
Fey::Literal->new_from_scalar()
.Fey::Literal
objectFey::Placeholder
object
You can call this method multiple times in order to do a multi-row insert.
$insert->sql()
Returns the full SQL statement which this object represents. A DBI handle must be passed so that identifiers can be properly quoted.
$insert->bind_params()
See the Fey::SQL section on Bind Parameters for more details.
$insert->insert_clause()
Returns the INSERT INTO
clause portion of the SQL statement as a string (just the tables).
$insert->columns_clause()
Returns the portion of the SQL statement containing the columns for which values are being inserted as a string.
$insert->values_clause()
Returns the VALUES
clause portion of the SQL statement as a string.
ROLES
AUTHOR
Dave Rolsky, <autarch@urth.org>
BUGS
See Fey for details on how to report bugs.
COPYRIGHT & LICENSE
Copyright 2006-2009 Dave Rolsky, All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.