public function getAll($table_name, $byColumns)
{
if (!is_array($byColumns)) {
throw new \Exception("\$byColumns must be an associative array of 'column => value' pairs");
}
$table = new Table($table_name, true, $this);
$equals = array();
$params = array();
foreach ($byColumns as $field => $value) {
$equals[] = $table->quoteIdentifier($field) . ' = ?';
$params[] = $value;
}
$where_sql = implode(' AND ', $equals);
$sql = "SELECT * FROM " . $table->quoteIdentifier($table->getName()) . " WHERE " . $where_sql;
$stmt = $this->_pdo->prepare($sql);
$r = $stmt->execute($params);
if ($r === false) {
$error = $stmt->errorInfo();
Logger::error('SQL statement failed: ' . $sql . ' ERROR MESSAGE: ' . $error[2] . ' ERROR CODE: ' . $error[1]);
}
$rows = array();
while ($result = $stmt->fetch(\PDO::FETCH_ASSOC)) {
$rows[] = new Row($table_name, $result, $this);
}
return $rows;
}