После некоторого гугления я нашел совет сделать следующее:
> sqlplus /nolog
SQL> connect / as sysdba
Connected.
SQL> shutdown abort
ORACLE Instance shut down.
SQL> startup nomount
ORACLE Instance started
SQL> alter database mount;
SQL> alter database open;
, Который все еще дал ошибку:
РТЫ 00600: внутренний код ошибки, аргументы: [kcratr1_lostwrt]
я тогда нашел совет сделать следующее:
SQL> startup mount
ORACLE Instance started
SQL> recover database
Media recovery complete
SQL> alter database open;
Database altered
Пример запроса
Поместите что-то вроде этого в свой index.php
:
<?php
// Holds data like $baseUrl etc.
include 'config.php';
$requestUrl = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$requestString = substr($requestUrl, strlen($baseUrl));
$urlParams = explode('/', $requestString);
// TODO: Consider security (see comments)
$controllerName = ucfirst(array_shift($urlParams)).'Controller';
$actionName = strtolower(array_shift($urlParams)).'Action';
// Here you should probably gather the rest as params
// Call the action
$controller = new $controllerName;
$controller->$actionName();
На самом деле базовый, но вы поняли идею ... (Я тоже не знал ' t позаботьтесь о загрузке класса контроллера, но я думаю, что это можно сделать либо с помощью автозагрузки, либо вы знаете, как это сделать.)
Пример простого контроллера (controllers / login.php):
<?php
class LoginController
{
function loginAction()
{
$username = $this->request->get('username');
$password = $this->request->get('password');
$this->loadModel('users');
if ($this->users->validate($username, $password))
{
$userData = $this->users->fetch($username);
AuthStorage::save($username, $userData);
$this->redirect('secret_area');
}
else
{
$this->view->message = 'Invalid login';
$this->view->render('error');
}
}
function logoutAction()
{
if (AuthStorage::logged())
{
AuthStorage::remove();
$this->redirect('index');
}
else
{
$this->view->message = 'You are not logged in.';
$this->view->render('error');
}
}
}
Как вы видите, контроллер заботится о «потоке» приложения - так называемой логике приложения. Он не заботится о хранении и представлении данных. Он скорее собирает все необходимые данные (в зависимости от текущего запроса) и назначает их представлению ...
Обратите внимание, что это не будет работать с какой-либо известной мне структурой, но я уверен, что вы знаете, какие функции предполагаются делать.
Представьте себе три экрана в пользовательском интерфейсе: экран, на котором пользователь вводит некоторые критерии поиска, экран, на котором отображается список сводок совпадающих записей, и экран, на котором после выбора записи отображается для редактирования. Будет некоторая логика, относящаяся к начальному поиску в строках
if search criteria are matched by no records
redisplay criteria screen, with message saying "none found"
else if search criteria are matched by exactly one record
display edit screen with chosen record
else (we have lots of records)
display list screen with matching records
Куда должна идти эта логика? Не в представлении или модели? Следовательно, это работа контроллера. Контроллер также будет отвечать за выбор критериев и вызов метода Model для поиска.