Я новичок в PHP. Я пытаюсь вставить данные в таблицу. во время работы программы показывается успешно, но при проверке в базе данных oracle 10g показывается данные не найдены. То же самое произошло при создании таблицы, она показывает таблица или представление не существует.
Вот мой код =
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
<body>
<h1><u>Inserting data into Table</u></h1>
<?php
// Create connection
$conn = oci_connect('SYSTEM', 'xxxx', 'localhost/XE');
// Check connection
if (!$conn) {
die("Connection failed: " . oci_error());
}
$sql = "insert into MYGUESTS (ID, FIRSTNAME, LASTNAME, EMAIL) values (12, 'John', 'Doe', '[email protected]')";
$stid=oci_parse($conn, $sql);
if(!$stid){
$e=oci_error($conn);
trigger_error(htmlentities($e[message],ENT_QUOTES),E_USER_ERROR);
}
else
{
echo "Successfull";
}
oci_close($conn);
?>
</body>
</html>
почему я не вижу никаких данных в базе данных оракула? в чем проблема?
Вам не хватает commit
а также execute
Пример OCI из php.net:
<?php
// Insert into several tables, rolling back the changes if an error occurs
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
$stid = oci_parse($conn, "INSERT INTO mysalary (id, name) VALUES (1, 'Chris')");
// The OCI_NO_AUTO_COMMIT flag tells Oracle not to commit the INSERT immediately
// Use OCI_DEFAULT as the flag for PHP <= 5.3.1. The two flags are equivalent
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
$e = oci_error($stid);
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
$stid = oci_parse($conn, 'INSERT INTO myschedule (startday) VALUES (12)');
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
$e = oci_error($stid);
oci_rollback($conn); // rollback changes to both tables
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
// Commit the changes to both tables
$r = oci_commit($conn);
if (!$r) {
$e = oci_error($conn);
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>
Других решений пока нет …