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

У меня есть одна страница php, которая подключается к базе данных оракула и извлекает некоторые данные на основе пользовательского ввода. В этом случае, как только пользователь введет 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>
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Другие вопросы по теме