Оператор return завершит выполнение вашего метода и выйдет из цикла. Цитировать руководство:
Если вызывается из функции, оператор return сразу
завершает выполнение текущей функции и возвращает ее аргумент как
значение вызова функции.
Чтобы сделать это, с минимальными усилиями, я бы только return false
только когда $this->db->execute()
потерпел неудачу и return true
в конце вашего метода, вот так:
public function importBooks($data, $nr)
{
// Init query
$this->db->query('INSERT INTO books_pre (title, author, publication, container, created_by, created_at) VALUES (:title, :author, :publication, :container, :created_by, now())');
for ($i=2; $i<$nr; $i++) {
// Bind values
$this->db->bind(':title', $data[$i]['B']);
$this->db->bind(':author', $data[$i]['C']);
$this->db->bind(':publication', $data[$i]['D']);
$this->db->bind(':container', $data[$i]['E']);
$this->db->bind(':created_by', $_SESSION['user_id']);
// Execute query
if (!$this->db->execute()) {
return false;
}
}
return true;
}
Однако, если бы мне пришлось переписать этот код, я лично, вероятно, взорвал бы массив данных и вставил бы все это в один запрос.