gcdb::_insert_replace_helper()
最后更新于:2021-11-26 09:06:44
gcdb::_insert_replace_helper( string$table, array$data, array|string$format=null, string$type=’INSERT’)Helper function for insert and replace.
参数
- $table
-
(string) (Required) Table name.
- $data
-
(array) (Required) Data to insert (in column => value pairs). Both $data columns and $data values should be “raw” (neither should be SQL escaped). Sending a null value will cause the column to be set to NULL
- the corresponding format is ignored in this case.
- $format
-
(array|string) (Optional) An array of formats to be mapped to each of the value in $data. If string, that format will be used for all of the values in $data. A format is one of ‘%d’, ‘%f’, ‘%s’ (integer, float, string). If omitted, all values in $data will be treated as strings unless otherwise specified in gcdb::$field_types.
Default value: null
- $type
-
(string) (Optional) Type of operation. Possible values include ‘INSERT’ or ‘REPLACE’.
Default value: ‘INSERT’
响应
(int|false) The number of rows affected, or false on error.
源文件
文件: gc-includes/gc-db.php
function _insert_replace_helper( $table, $data, $format = null, $type = 'INSERT' ) {
$this->insert_id = 0;
if ( ! in_array( strtoupper( $type ), array( 'REPLACE', 'INSERT' ), true ) ) {
return false;
}
$data = $this->process_fields( $table, $data, $format );
if ( false === $data ) {
return false;
}
$formats = array();
$values = array();
foreach ( $data as $value ) {
if ( is_null( $value['value'] ) ) {
$formats[] = 'NULL';
continue;
}
$formats[] = $value['format'];
$values[] = $value['value'];
}
$fields = '`' . implode( '`, `', array_keys( $data ) ) . '`';
$formats = implode( ', ', $formats );
$sql = "$type INTO `$table` ($fields) VALUES ($formats)";
$this->check_current_query = false;
return $this->query( $this->prepare( $sql, $values ) );
}