[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: подключение к БД и аякс
Гость_VICTOR_81
Здраствуйте.
Подскажите пожалуйста.
Дело в том что пишу на рнр я недавно, мучает один вопрос.
Поддержка подключения к БД и работа с аяксом.
Вот пример

Приложение создает подключение к нескольким БД. И выводит какую то страничку, Страничка обновляется динамически с помощью аякса.
Как при запросах аякса сохранять подключение к базам, а не создавать каждый раз новое???

Сейчас работает вот так. Есть класс для подключ к БД. В приложение подключаю и конектюсь к БД (их несколько)

Серверный скрипт аякса также подключает класс, и каждый раз новое подключение.

Как этого можно избежать??????







Спустя 59 минут, 51 секунда (27.08.2009 - 17:19) Michael написал(а):
Подключайся pconnect - тогда для определенного (хоста,пароля) PHP у себя внутри держит постоянно открытое соединение, а при отработке новой pconnect только возвращает готовый указатель.

Спустя 15 минут, 54 секунды (27.08.2009 - 17:35) Guest написал(а):
Базы данных на одном хосте находятся. Вот такая конструкция тоже не работает

PHP
$server ='localhost';
    
$user 'root';
    
$password ='';
    
$bd1 'BG_cms';
    
$bd2 'BG_games';
    
    if (
$con1 mysql_pconnect($server,$user$passwordtrue)){
        
mysql_select_db($bd1$con1);
    }
    
    if (
$con2 mysql_pconnect($server,$user$passwordtrue)){
        
mysql_select_db($bd2$con2);
    }    
    
    
$query "SELECT * FROM `viva_level1`";
    if (!(
$res mysql_query($query$con1)))
        
var_dump(mysql_error());    
    while (
$resur mysql_fetch_object($res)){
        
var_dump($resur);
        echo 
'<br>'
    }


выдает
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in X:\home\BUCH-CMS\www\bd\raz.php on line 19

Он подключается по последнему подключению, а надо что бы именнно к той базе данных которую указать. Вот как указатель хранить.

Спустя 7 минут, 44 секунды (27.08.2009 - 17:43) Michael написал(а):
В твоем случае два раза pconnect абсурд(только если не создать для каждого своего пользователя).
А почему ты просто не меняешь например текущую БД в одном соединении?
Или в запросе пиши
SQL
SELECT * FROM base1.viva_level1

Будет у тебя нормальное одно подключение.

Спустя 24 минуты, 53 секунды (27.08.2009 - 18:08) Гость_VICTOR_81 написал(а):
Цитата
почему ты просто не меняешь например текущую БД в одном соединении?

А это как сделать???

Спустя 1 час, 1 минута, 7 секунд (27.08.2009 - 19:09) Michael написал(а):
PHP
$server ='localhost';
    
$user 'root';
    
$password ='';
    
$bd1 'BG_cms';
    
$bd2 'BG_games';
    
$con1 mysql_pconnect($server,$user$password);
    if (
$con1) {
        
// Соединение установлено
        // 
        
$tekbd=$bd1;//=$bd2;  // - определяешся с какой БД работаешь
        //
        
$db=mysql_select_db($tekbd$con1);
        if (
$db) {
            
$query "SELECT * FROM `viva_level1`";
            
$res=mysql_query($query$con1);
            if (
$res) {
                   while (
$resur mysql_fetch_object($res))
                  {
                  
var_dump($resur);
                  echo 
'<br>'
                  }
            }
        }
    }


Спустя 14 часов, 8 минут, 25 секунд (28.08.2009 - 09:18) Guest написал(а):
Не вариант. бывает что несколько запросов к разным базам делать надо. Каждый раз переопределять и переподключаться к др. БД довольно накладно, да и ошибок наделать можно.

Цитата
SELECT * FROM base1.viva_level1


Вот это наверное самое наилучшее будет.

Спасибо за ответ.

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.