29
Мар
2016

Ошибка в запросе: ORA-00933: SQL command not properly ended

При генереции запроса к БД Oracle с помощью PHP получается вот такой результат:

UPDATE MYTEST2 SET DESCRIPTION = 'Буmvo', 
NAME = 'ris' 
WHERE DESCRIPTION = 'Буmv';
UPDATE MYTEST2 SET DESCRIPTION = 'briz', 
NAME = 'Gilio' 
WHERE DESCRIPTION = 'briz';

Но он не выполняется и возвращается ошибка:

ORA-00933: SQL command not properly ended

Подскажите пожалуйста, где я мог допустить ошибку?

Функция для формирования запроса:

//Редактировать таблицу
public static function editTable(){

    //

    //
    //$id = (int)$_POST['id'];
    //$namesc - имя столбца
    // $namesc = $_POST['id_name'];
    // //Новое значение
    // $text = $_POST['new_val'];
    $testArray = [];

    if(isset($_POST['oll_items'])){

        //Новые значения строки
        $allIrems = $_POST['oll_items'];

        //столбец и значение будут использованы в кочесве индетификатора
        $columnAndValue = $_POST['clumn_value'];

        //Наименование таблицы
        $table = $_POST['cr_table'];

        //Заголовоки таблицы
        // $headerTable = $_POST['cr_header'];

        //Подключаемся к БД
        global $conn;
        $query = "UPDATE $table SET ";

        $query2 = "UPDATE $table SET ";
        $result = "";
        //Изменение данных в таблице

        foreach ($allIrems as $item) {
            foreach ($item as $key => $value) {
                if(!next($item)){
                    $query .= $key . " = \"" . $value . "\" \n";
                }else{
                    $query .= $key . " = \"" . $value . "\", \n";
                }
            }
            $query .= " WHERE ";
            foreach ($columnAndValue as $i) {
                foreach ($i as $key => $value) {
                        $query .= "$key = \"$value\"";
                }
                array_shift($columnAndValue);
                break;
            }
            //$result .= $query . ";\n";

            // $result = str_replace("'", '', $result);
            // $result = str_replace('"', "'", $result);

            $query = str_replace("'", '', $query);
            $query = str_replace('"', "'", $query);
            // return $query;
            $stip = oci_parse($conn, $query);
            $res = oci_execute($stip);
            $query = "";
            $query = $query2;
}

Выполнение запроса в SQL*Plus:

SQL*Plus: Release 12.1.0.2.0 Production on Tue Har 29 10:44:03 2016

Copyright (c) 1982, 2014, Oracle.   All rights reserved.

Enter user-naae: system Enter password:

Last Successful login tiae: Tue Har 29 2016 16:38:47 403:00 Connected to:
Oracle Oatabase 12c Standard Edition Release 12.1.0.2.0 - 64bit Production

SQL> UPDATE HVTEST2 SET DESCRIPTION = 'aaa',  NAME =  'bbb' WHERE DESCRIPTION = 'ccc';UPOATE HYTEST2 SET DESCRIPTION =  'briz",  NAME  =  'Gilio' WHERE DESCRIPTI ON = 'briz';
UPDATE HYTEST2 SET DESCRIPTION = 'aaa',  NAME =  'bbb' WHERE DESCRIPTION = *6yw v';UPOATE HVTEST2 SET DESCRIPTION =  'briz',  NAME  =  'Gilio' WHERE DESCRIPTION = " briz"

      *
ERROR at line 1:
ORA-00933: SQL coawiand not properly ended
SQL>_

Источник: https://ru.stackoverflow.com/questions/507644/%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-%D0%B2-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B5-ora-00933-sql-command-not-properly-ended

Тебе может это понравится...

Добавить комментарий