User Tools

Site Tools


documents:cakephp_best_practice

This is an old revision of the document!


CakePHP best practice

1. Save large record set

public function submitData($data = array()) { if (!empty($data)) { $queryString = ''; $queryData = array(); $i = 0;   foreach ($data as $item) { if (empty($queryString)) { $queryString = "INSERT INTO `shipstations` ("; $columns = array(); $values = array(); foreach($item as $key=>$value) { $columns[] = "`$key`"; $values[] = !is_numeric($value) ? "'" . Utils::mres($value) . "'" : $value; }   $queryString .= implode(',', $columns) . ') VALUES '; $queryData[] = '(' . implode(',', $values) . ')'; } else { $values = array(); foreach($item as $key=>$value) { $values[] = !is_numeric($value) ? "'" . $value . "'" : $value; } $queryData[] = '(' . implode(',', $values) . ')'; }   $i++;   if ($i == 500) { $queryString .= implode(',', $queryData); $this->query($queryString); $queryString = ''; $queryData = array(); $i = 0; } }   $queryString .= implode(',', $queryData); if (!empty($queryString)) { $this->query($queryString); } } }

documents/cakephp_best_practice.1429970918.txt.gz · Last modified: 2015/04/25 14:08 by admin