За последние 24 часа нас посетили 18205 программистов и 1697 роботов. Сейчас ищут 1485 программистов ...

ORA-00904

Тема в разделе "Oracle Database", создана пользователем Ann59, 21 ноя 2006.

  1. Ann59

    Ann59 Активный пользователь

    С нами с:
    13 ноя 2006
    Сообщения:
    3
    Симпатии:
    0
    Подскажите пожалуйста! Есть скрипт:

    PHP:
    1. <?php
    2. $sql = "select user_name, pass_us from USERS_REK t where USER_NAME=".$_POST['user'];
    3.    
    4.         $s = OCIParse($con, $sql);
    5.         OCIExecute($s, OCI_DEFAULT);
    6.           while (OCIFetch($s)) {
    7.           echo "COL1=" . ociresult($s, "USER_NAME") .
    8.                ", COL2=" . ociresult($s, "PASS_US") . "n";
    9.                   }
    10. ?>
    .$_POST['user'] - имя, которое приходит из формы проверки пользователя и пароля.
    В результате получаю ошибку:

    Warning: ociexecute() [function.ociexecute]: ORA-00904: "name_from_form": invalid identifier in run.php on line 32

    Warning: ocifetch() [function.ocifetch]: ORA-24374: define not done before fetch or execute and fetch in run.php on line 33
    0

    Если искать
    $sql = "select user_name, pass_us from USERS_REK t where ID=".$_POST['user'];
    где в .$_POST['user'] лежит просто цифра, все работает корректно...

    Как избавиться от ошибки и искать по текстовой информации?
     
  2. Anonymous

    Anonymous Guest

    При указании текстовых констант ее надо брать в кавычки:
    $sql = "select user_name, pass_us from USERS_REK t where USER_NAME='{$_POST['user']}'";
    PS. Не забывайте пре безопасность.