За последние 24 часа нас посетили 22497 программистов и 1152 робота. Сейчас ищут 639 программистов ...

php + MS Access

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

  1. FedorSWNet

    FedorSWNet Новичок

    С нами с:
    6 сен 2019
    Сообщения:
    19
    Симпатии:
    0
    Всем привет.
    Есть необходимость общаться с акцессом из php. У кого есть опыт в этом вопросе подскажите пож. как организовать процесс подключения к базе?
    зы: php7.3.7
     
  2. kazadai90

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

    С нами с:
    6 фев 2013
    Сообщения:
    103
    Симпатии:
    19
    Хорошее видео



    Примерный код
    Код (Text):
    1. <?php
    2.  
    3. $connection = odbc_connect("cars_connection", "", "");
    4.  
    5. $sql = "SELECT * FROM mark";
    6.  
    7. $result = odbc_exec($connection, $sql);
    8.  
    9.  
    10. while(odbc_fetch_row($result)){
    11.     for($i=1;$i<=odbc_num_fields($result);$i++){
    12.         echo odbc_result($result, $i);
    13.         echo " ";
    14.     }
    15. }
     
  3. FedorSWNet

    FedorSWNet Новичок

    С нами с:
    6 сен 2019
    Сообщения:
    19
    Симпатии:
    0
    Спасибо за помощь, но к сожалению такой вариант я пробовал :(
    Получил такую ошибку:
    "Warning: odbc_connect(): SQL error: [Microsoft][�������� ��������� ODBC] � ��������� DSN ���������� �������� � ���������� ��������� �� ������������ ���� �����., SQL state IM014 in SQLConnect in C:\xampp\htdocs\index.php on line 9"
     
  4. kazadai90

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

    С нами с:
    6 фев 2013
    Сообщения:
    103
    Симпатии:
    19
    т.е. вы создали подключение в самой ОС как на видео, скопировали имя этого подключения в свой код (и БД Access создали) ?
    И выдает ошибки? Просто судя по вашей ошибке не удается как раз подключение найти
     
  5. FedorSWNet

    FedorSWNet Новичок

    С нами с:
    6 сен 2019
    Сообщения:
    19
    Симпатии:
    0
    Совершенно верно, но до вышесказаноого пользовался готовой базой, но 10 мин назад создал тестовую базу, как на видео, но ошибка таже.
    У меня стоит 7-ка 64 может в этом собака зарылась.....
    Я бьюсь над подключением больше недели, перелопатил по тырнета.....
     
  6. FedorSWNet

    FedorSWNet Новичок

    С нами с:
    6 сен 2019
    Сообщения:
    19
    Симпатии:
    0
    Установил всю софтину на win32, дабы избежать несоответствий разрядности, в итоге появилась другая ошибка:

    Fatal error: Uncaught Error: Call to undefined function odbc_connect() in C:\xampp\htdocs\index.php:14 Stack trace: #0 {main} thrown in C:\xampp\htdocs\index.php on line 14

    Складывается такое впечатление, что php просто не знает функцию odbc_connect().
    Может функции odbc необходимо включить?
     
  7. Artur_hopf

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

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    да, в php.ini
     
  8. FedorSWNet

    FedorSWNet Новичок

    С нами с:
    6 сен 2019
    Сообщения:
    19
    Симпатии:
    0
    А можно чуть подробнее. Пож.
     
  9. Artur_hopf

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

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    расскоментируйте там строку, в зависимости от версии будет как то так называться:
    PHP:
    1. ;extension=odbc
     
  10. FedorSWNet

    FedorSWNet Новичок

    С нами с:
    6 сен 2019
    Сообщения:
    19
    Симпатии:
    0
    К сожалению в php.ini
    extension=odbc раскоментирован, а ошибка сохраняется :(
     
  11. FedorSWNet

    FedorSWNet Новичок

    С нами с:
    6 сен 2019
    Сообщения:
    19
    Симпатии:
    0
    Кто знает, какие еще есть настройки в PHP?
    И еще, я пользую "xampp", может сборка "заточена" под mysql? Как это проверить?
    С mysql все работает отлично.
     
  12. kretsman

    kretsman Новичок

    С нами с:
    7 сен 2018
    Сообщения:
    80
    Симпатии:
    0
    Имею схожую проблему, но с PHP 5.3

    Также Win 7 x64.

    В итоге конфликты с дровами для баз Аксэсс.

    Ошибки разные:
    Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию, SQL state IM002 in SQLConnect in H:\home\lepus\www\locations.php on line 6

    Could not find database file.

    При том, что дрова на эту базу я вручную поставил из недр системы. При этом у знакомого на такой же винде подобный же код работает норм, не понимаю что к чему в общем, кто может подсказать?
     
  13. kazadai90

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

    С нами с:
    6 фев 2013
    Сообщения:
    103
    Симпатии:
    19
    Попробуйте тогда OpenServer поставить.
     
  14. FedorSWNet

    FedorSWNet Новичок

    С нами с:
    6 сен 2019
    Сообщения:
    19
    Симпатии:
    0
    Я у себя решим данную проблему, опишу как:
    Во первых откатился на php 5.6, php7хх ни в какую не хочет работать ни с 'odbc_connect()' ни с PDO.
    И второй момент, на каком то форуме мне пиндос с гугл переводчиком объяснил, хоть система и х64, а файлы базы могут быть х32.
    Я установил комплект дров с https://www.microsoft.com/ru-ru/download/details.aspx?id=36434.
    Несмотря на х64 вин дрова норм стали и все заработало.
    В проекте использую код:
    $f='D:\xampp\htdocs\BD\Form.mdb';
    $konekt="odbcdriver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=$f";
    $baza = new PDO($konekt)or die('Нихрена не конектит');
    echo "ПОДКЛЮЧЕНО к $f"."<BR>";
    $zapros = "SELECT * FROM TblVyd";
    ну так далее...
     
  15. kazadai90

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

    С нами с:
    6 фев 2013
    Сообщения:
    103
    Симпатии:
    19
    Хорошо, если все получилось. У меня php7.2, с Access нормально работает.