Вам нужны одинарные кавычки вокруг полей varchar
, которые вы вставляете (я полагаю, это url_name, anchor_text и description). Одиночная кавычка, которая у вас есть в настоящее время, просто делает эти значения строкой, но в Oracle поля varchar должны иметь одинарные кавычки. Попробуйте это:
$sql1="insert into URL(Url_ID,Url_Name,Anchor_Text,Description) VALUES( 9,'".'{$url_name}'."','".'{$anchor_text}'."','".'{$description}'."')";
У меня нет нигде PHP для его тестирования, но это должно создать одинарные кавычки вокруг ваших значений.
Потому что на самом деле sql, который вы в конечном итоге будете выполнять в базе данных, будет выглядеть так:
insert into URL
(
Url_ID,
Url_Name,
Anchor_Text,
Description
)
VALUES
(
9,
'My Name',
'My Text',
'My Description'
)
Основная статья Связывание переменных в Oracle и PHP , похоже, не работает, но вот Версия Google Cache , в которой подробно рассказывается о том, как связывать переменные в PHP. Вы определенно хотите сделать это для 1) производительности и 2) защиты от внедрения SQL.
Кроме того, мой PHP немного заржавел, но похоже, что вы могли бы также сделать свой оригинальный запрос следующим образом:
$sql1="insert into URL(Url_ID,Url_Name,Anchor_Text,Description) values ( 9, '$url_name', '$anchor_text', '$description')";
Редактировать
Кроме того, вам нужно избегать любых одинарных кавычек, которые могут присутствовать в данных, которые вы получаете от переменных формы. В SQL-строке Oracle вам нужно преобразовать одинарные кавычки в 2 одинарные кавычки, чтобы избежать их. См. Раздел здесь под названием «Как вставить строки, содержащие кавычки?»