как использовать пользовательский ввод, определенный на одной html-странице на другой php-странице, для извлечения данных из базы данных Oracle - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть одна php-страница, которая подключается к базе данных oracle и извлекает некоторые данные на основе некоторого пользовательского ввода.Здесь, в этом случае, как только пользователь введет user_id и отправит его, мой код получит еще некоторые данные (REQUEST_TIME, WORKFLOW_NAME, EVENT_MESSAGE) этого пользователя.Я использую код ниже, и я не уверен, правильно ли я это делаю.Я получаю сообщение об ошибке ниже:

Предупреждение: oci_execute (): ORA-00904: «USER_ID»: неверный идентификатор в D: \ SVN \ TOOLBOX_WEB \ WEBContent \ admin \ V2 \ public \ ssn \ index2.php на линии 36

Может кто-нибудь, пожалуйста, руководство, как действовать.

Это моя страница php:

<pre><?php

include('mypage.php');
class logAgent
{
    const CONFIG_FILENAME = "data_config.ini";

    private $_dbConn;
    private $_config;

    function __construct()
    {
        $this->_loadConfig();


        $this->_dbConn = oci_connect($this->_config['db_usrnm'],
            $this->_config['db_pwd'],
            $this->_config['hostnm_sid']);
    }
    private function _loadConfig()
    {
        // Loads config
        $path = dirname(__FILE__) . '/' . self::CONFIG_FILENAME;
        $this->_config = parse_ini_file($path) ;
    }
    public function fetchLogs() {
        $uid =$_POST["USER_ID"];

        $sql = "SELECT REQUEST_TIME,WORKFLOW_NAME,EVENT_MESSAGE
                            FROM AUTH_LOGS WHERE USER_ID = '".$uid."'";

        //Preparing an Oracle statement for execution
        $statement = oci_parse($this->_dbConn, $sql);

        //Executing statement
        oci_execute($statement);
        while (($row = oci_fetch_row($statement)) != false) {
            foreach ($row as $item) {
                echo $item . " ";
            }
            echo "\n";
        }
    }
}
?>

mypage.php

<!DOCTYPE html>
<html>
    <head>
        <title>User_Logs</title>
    </head>

    <body>
	<?php
		if ($_SERVER["REQUEST_METHOD"] == "POST"){
			$uid =$_POST["USER_ID"];
			$logAgent = new logAgent();
			$logAgent->fetchLogs();
		}
		?>
        <form method="POST" id="form-add" action="index2.php">
			USER_ID: <input type="text" name="USER_ID"/><br>
			<input type="submit" name="submit" value="Get_Logs"/>
        </form>
    </body>
</html>

1 Ответ

0 голосов
/ 07 сентября 2018

По вашей ошибке оракул жалуется, что не может найти поле USER_ID. Глядя на ваш оператор SELECT в файле php, оракул ожидает, что это поле будет в вашей таблице AUTH_LOGS. Убедитесь, что вы правильно написали имя поля или что поле существует в таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...