====== replace ====== ~~NOTOC~~ **This function does no row-locking, so it is possible that the same record could be inserted twice by two programs. Use in multi-user environments is not recommended.** == syntax == int replace( string $table, mixed $dataFields, mixed $keyColumn, optional bool $autoQuote = false, optional bool $primaryKeyIsAuto=false ) ===== Description ===== The function ''replace()'' inserts or replace a single record. It can be considered a companion program to [[autoexecute|autoExecute()]]. ===== Parameters ===== ==== $table ==== The table name to update ==== $dataFields ==== An associative array of data, where the keys are the column names and the values are the values to insert or replace. (you must quote strings yourself). ==== $keyColumn ==== The primary key field name or if compound key, an array of field names ==== $autoQuote ==== Set this value to true to use a heuristic to quote strings. Works with nulls and numbers but does not work with dates nor SQL functions. ==== $primaryKeyIsAuto ==== If the primary key is an auto-inc field, skip in insert. ===== Return Values ===== returns 0 = fail, 1 = update, 2 = insert ==== Usage ==== /* * Connection assumed */ * $tableName = 'products'; $indexColumn = 'product_code'; $data = array('product_code'=>10201, 'product_name' =>"'Nails'", 'price' => 3.99); $status = $db->replace($tableName, $data, $indexColumn); /* * Status code tells us if operation succeeded */ ===== Technical Overview ===== This is not the same as MySQL's replace. ADOdb's Replace() uses update-insert semantics, not insert-delete-duplicates of MySQL. Also note that no table locking is done currently, so it is possible that the record be inserted twice by two programs... Currently blob replace not supported