VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Извиняюсь, не сразу заметил этот раздел, поэтому в первый раз создал тему не там где нужно!:o
Пишу чат к буллетину, есть проблема с соединение с базой...
Когда импортирую в чат файл global.php, не могу вручную подцепиться к базе...
Вот скрипт коннекта
PHP Code:
global $dbhost, $dbname, $dbuname, $dbpass, $link, $vburl;
$link=@mysql_connect ($dbhost, $dbuname, $dbpass) or die ('Подключение невозможно: ' . mysql_error());
mysql_select_db ($dbname) or die('Проблемы с базой данных');
Ошибка возникает при выборе базы данных (вылазит сообщение "Проблемы с базой данных")
Естественно никто не отменял функции PHP для работы с БД, но так как мы люди цивилизованные свой велосипед изобретать не будем. Потому призываю всех пользоваться встроенными функциями.
Плюсы очевидны:
Для работы со встроенными объектами нам не требуется никаких дополнительных переменных, таких как адрес sql-сервера, имя базы, префикс таблиц!
Итак, к делу!
За все операции с Базой в vbulletin отвечает объект $db
$db (Type: Object)
Метод глобального использования $vbulletin->db, локально $db
$db->query();
впринципе аналогичен PHP функции mysql_query()
$db->query_read();
Отдельно для выполнения запросов SELECT и SHOW
$db->query_write();
Выполняет запросы модификации БД INSERT, REPLACE, UPDATE, DROP, ALTER
$db->query_first();
Аналогична query_read(), но возвращает лишь первый результат в виде ассоциативного массива. (в ПХП mysql_query() + mysql_fetch_array() )
while ($var = $db->fetch_array($mysql_resource_var)){
// your code ($var - ассоциативный массив);
}
$db->mysql_insert_id();
аналагична mysql_insert_id()
возвращает индификатор последнего запроса INSERT
$db->escape_string(); and $db->escape_string_like();
Функции заменяют PHPшные addslashes() and addslashes_like().
$db->show_errors(); and $db->hide_errors();
обработка ошибок SQL. Первая функция включает вывод ошибок. Вторая наоборот
PS все вышеописанное для версий vB 3.5.x
Last edited by sequence : 11-30-2005 at 08:54 PM.
@ReloadeR
Почти новичок
Join Date: Oct 2005
Posts: 23
Версия vB: 4.2.х
Reputation:
Novice 0
Репутация в разделе: 0
0
А что с версией 3.0.х ? Там если не ошибаюсь обьект $db_site... а метод я не знаю. Такой же ($vbulletin) или нет? И как мне этими встроенными функциями пользоваться? Когда пише что то вроде
PHP Code:
$vbulletin->db_site->query_read("SELECT.......... ");
// или
$db_site->query_read("SELECT............ ");
выдает ошибку: Call to a member function on a non-object
Какой файл мне нужно приаттачить или что написать в global? $vbulletin и $db_site я уже пробовал...
А вообще лучше скажи как мне пользоваться нормальными функциями!
Когда приаттачиваю к своему скрипту global.php, перестает работать mysql_select_db. При исполнении вылазил mysql_error() Access denied for user: '@localhost' to database 'alex_vbulletin'. Отрубаю файл global.php, все работает! Но я без него не могу, мне нужны все массивы буллетина в моем скрипте.
Все разобрался, пока устанавливал твой хак авто-наград! (:
Ты тут гуру, поэтому чтоб потом другим помогать, прими к сведенью следущее!
ОТЛИЧИЯ МЕЖДУ 3.5.Х и 3.0.Х В ОБРАЩЕНИИ К БАЗЕ ВСТРОЕННЫМИ ФУНКЦИЯМИ.
1. Не нужен никакой метод ($vbulletin) или даже его вообще нет.
2. Обращаться нужно так: (пример) $DB_site->query_first(запрос); (ОБЯЗАТЕЛЬНО С УЧЕТОМ РЕГИСТРА)
3. query_read(); и query_first(); вообще не существует! Вместо них нужно писать просто query();
Другие различия не искал, если найду пока скрипт допишу свой, то выложу!
Last edited by ReloadeR : 12-02-2005 at 12:59 AM.
Reason: Добавлено сообщение
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,712
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20257
Репутация в разделе: 8432
0
пробовал подключать глобал.пхп отдельно к каждому массиву?
@ReloadeR
Почти новичок
Join Date: Oct 2005
Posts: 23
Версия vB: 4.2.х
Reputation:
Novice 0
Репутация в разделе: 0
0
Да все перепробовал! С сервером базы соединяется, а к конкретной базе не коннектится!
Ладно с этим я уже разобрался, буду делать через встроенные функции!