За последние 24 часа нас посетили 22688 программистов и 1272 робота. Сейчас ищет 691 программист ...

Запрос к двум базам access

Тема в разделе "PHP и базы данных", создана пользователем FedorSWNet, 4 окт 2019.

  1. FedorSWNet

    FedorSWNet Новичок

    С нами с:
    6 сен 2019
    Сообщения:
    19
    Симпатии:
    0
    Всем привет.
    Подскажите, есть ли возможность, используя PHP, обратиться в одном SELECT к двум базам данных.
    Базы находятся на одном сервере.
     
  2. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    да можно
    db1.t2 db2.t2
     
  3. FedorSWNet

    FedorSWNet Новичок

    С нами с:
    6 сен 2019
    Сообщения:
    19
    Симпатии:
    0
    А как же тогда будет выглядеть функция выполнения запроса $result=odbc_exec($baza1, $zapros);?
    Функция же выполняет запрос $zapros к безе $baza1...
     
  4. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    что то типо, в инете есть же примеры
    PHP:
    1. SELECT t1.*, t2.*
    2. FROM T1
    3. INNER JOIN
    4. (SELECT * FROM atable
    5. IN 'C:\Docs\DB2.mdb') t2
    6. ON t1.ID=t2.ID
     
  5. FedorSWNet

    FedorSWNet Новичок

    С нами с:
    6 сен 2019
    Сообщения:
    19
    Симпатии:
    0
    Как написать запрос я понимаю. Как его передать базе данных?
    $zapros='SELECT t1.*, t2.* FROM T1 INNER JOIN(SELECT * FROM atable IN 'C:\Docs\DB2.mdb') t2 ON t1.ID=t2.ID';
    $result=odbc_exec($baza1, $zapros);
     
  6. FedorSWNet

    FedorSWNet Новичок

    С нами с:
    6 сен 2019
    Сообщения:
    19
    Симпатии:
    0
    Вышеприведенное выражение не работает, выдает ошибку:
    odbc_exec(): SQL error: [Microsoft][ODBC Microsoft Access Driver] Syntax error in FROM clause., SQL state 37000 in SQLExecDirect
    в строке с функцией odbc_exec.
     
  7. FedorSWNet

    FedorSWNet Новичок

    С нами с:
    6 сен 2019
    Сообщения:
    19
    Симпатии:
    0
    SELECT K.TX FROM K IN 'C:\Baza\baza.mdb' WHERE K.nom=15
    В таком виде все работает, почему то IN и JOIN в одном запросе не идут, а через вложеный запрос работает.
    --- Добавлено ---
    Еще есть вопрос по кодировке, как в драйвере ODBC указать кодировку базы данных Windows-1251.