При генереции запроса к БД 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>_
Свежие комментарии