API15

JDatabaseMySQLi/insertObject

From Joomla! Documentation

< API15:JDatabaseMySQLi
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

The "API15" namespace is an archived namespace. This page contains information for a Joomla! version which is no longer supported. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.

Description[edit]

Inserts a row into a table based on an objects properties

[<! removed edit link to red link >]

<! removed transcluded page call, red link never existed >

Syntax[edit]

insertObject($table, &$object, $keyName=NULL)
Parameter Name Default Value Description
$table The name of the table
&$object An object whose properties match table fields
$keyName NULL The name of the primary key. If provided the object property is updated.

Defined in[edit]

libraries/joomla/database/database/mysqli.php

Importing[edit]

jimport( 'joomla.database.database.mysqli' );

Source Body[edit]

function insertObject( $table, &$object, $keyName = NULL )
{
        $fmtsql = 'INSERT INTO '.$this->nameQuote($table).' ( %s ) VALUES ( %s ) ';
        $fields = array();
        foreach (get_object_vars( $object ) as $k => $v) {
                if (is_array($v) or is_object($v) or $v === NULL) {
                        continue;
                }
                if ($k[0] == '_') { // internal field
                        continue;
                }
                $fields[] = $this->nameQuote( $k );
                $values[] = $this->isQuoted( $k ) ? $this->Quote( $v ) : (int) $v;
        }
        $this->setQuery( sprintf( $fmtsql, implode( ",", $fields ) ,  implode( ",", $values ) ) );
        if (!$this->query()) {
                return false;
        }
        $id = $this->insertid();
        if ($keyName && $id) {
                $object->$keyName = $id;
        }
        return true;
}

[<! removed edit link to red link >] <! removed transcluded page call, red link never existed >

Examples[edit]

Code Examples[edit]