/** * prepare passed string as statement or return cached if enabled and available * * @param PDO $db * @param string $statement * @return PDOStatement */ protected static function prepareStatement(PDO $db, $statement) { if (self::isCacheStatements()) { if ($statement == self::SQL_INSERT) { if (null == self::$stmtInsert) { self::$stmtInsert = $db->prepare($statement); } return self::$stmtInsert; } elseif ($statement == self::SQL_INSERT_AUTOINCREMENT) { if (null == self::$stmtInsertAutoIncrement) { self::$stmtInsertAutoIncrement = $db->prepare($statement); } return self::$stmtInsertAutoIncrement; } elseif ($statement == self::SQL_UPDATE) { if (null == self::$stmtUpdate) { self::$stmtUpdate = $db->prepare($statement); } return self::$stmtUpdate; } elseif ($statement == self::SQL_SELECT_PK) { if (null == self::$stmtSelect) { self::$stmtSelect = $db->prepare($statement); } return self::$stmtSelect; } elseif ($statement == self::SQL_DELETE_PK) { if (null == self::$stmtDelete) { self::$stmtDelete = $db->prepare($statement); } return self::$stmtDelete; } } return $db->prepare($statement); }