PHP-MySQLi-Database-Class icon indicating copy to clipboard operation
PHP-MySQLi-Database-Class copied to clipboard

insert into values (),(),(),()...

Open getchu opened this issue 7 years ago • 1 comments

public function buildSql($tableName , $sqlStack){
    $keys = \array_keys($sqlStack[0]);
    $keysStr = array();
    foreach($keys as $key){
        $keysStr[] = '`'.$key.'`';
    }
    $keysStr = \implode(',', $keysStr);
    $sql = 'INSERT INTO '.$tableName. '('.$keysStr. ') VALUES ';

    //data
    $values = array();
    foreach($sqlStack as $insertData){
        $fields = array();
        foreach($insertData as $key=>$value){
            $fields[] = is_string($value) ? '\''.$this->escape($value).'\'' : (is_null($value) ? '' : $value);
        }
        $fields = \implode(',', $fields);

        $values[] = '('.$fields.')';
    }
    $values = \implode(',', $values);

    $sql = $sql .$values . ';';


    return $sql;
}

getchu avatar Mar 08 '18 04:03 getchu

solved null insert instead of empty: https://github.com/ThingEngineer/PHP-MySQLi-Database-Class/pull/954

enrybisco avatar Jul 22 '21 14:07 enrybisco