Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: dbm функции
 
 автор: shiling   (25.12.2005 в 09:15)   письмо автору
 
 

Помогите пожалуйста ,как создать dbm базу данных?

   
 
 автор: Саня   (25.12.2005 в 11:55)   письмо автору
 
   для: shiling   (25.12.2005 в 09:15)
 

Это делается с помощью функции dbmopen()
resource dbmopen ( string filename, string flags )
http://php.rinet.ru/manual/ru/function.dbmopen.php

<?php
$db 
dbmopen("database.db""n");
if (
$db) {
  echo(
"База данных успешно создана.");
} else {
  echo(
"Произошла ошибка при создании базы данных.");
}
?>

Приведённый выше код создаст бд, за что отвечает флаг "n" (new).

   
 
 автор: shiling   (25.12.2005 в 12:29)   письмо автору
 
   для: Саня   (25.12.2005 в 11:55)
 

вот моя програма:

<?php
$x
=dbmopen("/www/shiling.vip.su/dbm/db.db","n");
?>

вот что выдает при обращение к ней :
Fatal error:Call to undefined function
dbmopen()
Что у меня не так?chod на каталоге 777.

   
 
 автор: Саня   (25.12.2005 в 12:48)   письмо автору
 
   для: shiling   (25.12.2005 в 12:29)
 

Дело в том, что формат dbm - одна из разновидностей базы данных Berkeley DB, которая поддерживается расширением php_dba.dll. Но некоторые из этих разновидностей конфликтуют друг с другом, поэтому поддержка конкретно формата dbm может отсутствовать на вашем хостинге.
А может просто не подключено само расширение.

Для проверки выполните phpinfo() у себя на хостинге и поищите строку: "DBA support". Если она имеет значение "enabled" - значит расширение подключено, если такой строки нет вообще, - значит и расширение не подключено.
Далее взгляните на строку "Supported handlers" (если расширение всё-таки подключено). Там через пробел написаны поддерживаемые форматы. Если среди них нету "dbm" - значит функции dbmopen() не существует, о чём говориться в ошибке (Call to undefined function).

   
 
 автор: shiling   (25.12.2005 в 13:43)   письмо автору
 
   для: Саня   (25.12.2005 в 12:48)
 

че то я не могу найти,если не затруднит посмотрите пожалуйста:
http://shiling.vip.su/dbm/dbm.php

   
 
 автор: Саня   (25.12.2005 в 14:20)   письмо автору
 
   для: shiling   (25.12.2005 в 13:43)
 

По-видимому это расширение вообще не подключено.
Но вы можете попробовать уговорить хостера подключить эту библиотеку. Если же не получится, прийдётся искать иной выход. Вот, например, я заметил, что у вас на хостиге подключена библиотека SQLite. Просто замечательное расширение! Использует стандарт SQL 92, и при этом хранит базу в файлах. Довольно сильно смахивает на MySQL, только нет ограничений на количество баз данных, работает быстрее, вобщем, читайте:
http://php.rinet.ru/manual/ru/ref.sqlite.php
http://www.phpworld.ru/sqlite/

   
 
 автор: shiling   (25.12.2005 в 15:45)   письмо автору
 
   для: Саня   (25.12.2005 в 14:20)
 

огромное спасибо вам,вы очень помогли:)

   
 
 автор: Киналь   (25.12.2005 в 16:22)   письмо автору
 
   для: shiling   (25.12.2005 в 09:15)
 

Ппршу прощения, что влезаю. Это что же выходит, вместо MySQL своя БД, что ли?

   
 
 автор: Саня   (25.12.2005 в 16:31)   письмо автору
 
   для: Киналь   (25.12.2005 в 16:22)
 

Правильней сказать не своя, а другая. SQLite - сторонняя разработка. Например, спросят: "Какие бд ты знаешь?". В ответ: "MySQL, PostgreeSQL, Oracle, Sybase, MS SQL, dBase, Ingres". Теперь с уверенностью можно дополнить этот список и такой бд, как SQLite.

   
 
 автор: Киналь   (25.12.2005 в 23:03)   письмо автору
 
   для: Саня   (25.12.2005 в 16:31)
 

Нет. я не совсем точно выразился. Если все другие БД (MySQL, Oracle, PostgreeSQL) требуют дополнительной установки, то SQLite, что же, в комплекте с РНР? Или я чего-то не так понял?

   
 
 автор: Саня   (25.12.2005 в 23:11)   письмо автору
 
   для: Киналь   (25.12.2005 в 23:03)
 

Да. Начиная с версии 5.1.0, PHP по умолчанию комплектуется библиотекой SQLite. Эта библиотека сама является базой данных, а не клиентской программой или интерфейсом для работы с БД.

   
 
 автор: cheops   (26.12.2005 в 02:05)   письмо автору
 
   для: Саня   (25.12.2005 в 23:11)
 

Это называется встроенный сервер, такой сервер существует и у MySQL - его библиотеку можно встраивать в приложения таким образом, чтобы они не зависили от внешнего сервера.

   
 
 автор: Киналь   (26.12.2005 в 11:00)   письмо автору
 
   для: Саня   (25.12.2005 в 23:11)
 

Спасибо, весьма любопытно. Хех, и никаких проблем с экспортом БД - файлы скопировал, и всего делов=) Хорошая вещь. Жаль только, что РНР пятый нужен.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования