За последние 24 часа нас посетили 22719 программистов и 1200 роботов. Сейчас ищут 698 программистов ...

Как записать в БД данные из массива, получаемые скриптом php

Тема в разделе "Laravel", создана пользователем Feonix89, 14 июн 2018.

  1. Feonix89

    Feonix89 Новичок

    С нами с:
    30 май 2018
    Сообщения:
    113
    Симпатии:
    2
    Здравствуйте, прошу помощи. Ситуация следующая.
    Есть скрипт, обращающийся к удаленной БД, который получает ассоциативный массив данных ( таблица уникальных значений: 3 столбца 2500 строк - проверил в консоли работает ). Я его расположил в папке public приложения. Как мне обратиться к нему через Laravel ( я так понимаю по url ) и записать в свою БД.
    Если можно на простом примере, т.к. я в этом начинающий и по документации сам разобраться не смог. Заранее благодарен.

    Laravel 5.4
    MSSQL server 2008
    PHP 5.6.4
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.554
    Симпатии:
    1.754
    Сначала надо PHP учить, а потом на Laravel писать, тогда глупых вопросов не будет. Зачем было делить на два скрипта, а не сделать, к примеру, команду artisan, обращающуюся к одной базе и записывающей в другую (доку повторять не буду, как делать команды artisan)? В каком виде даёт данные тот скрипт, который в папке public?
     
    acho нравится это.
  3. acho

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

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    А не надо его в паблик класть. Скрипт надо переделать в контроллер и положить в правильное место (app/Http/Controllers) и дальше плясать уже от этого. И не надо никуда вне проекта будет лазить
    --- Добавлено ---
    Опоздал. :)
     
  4. Feonix89

    Feonix89 Новичок

    С нами с:
    30 май 2018
    Сообщения:
    113
    Симпатии:
    2
    Стараюсь учить по мере поставленных задач. А разделял из-за следующего ряда причин:
    1) От удаленной базы с windows аутентификацией (база microsoft system center) получаю результат (эти самые 3 колонки уникальных значений) - они должны записаться в мою БД c SQL авторизацией и в дальнейшем дополняться только новыми уникальными значениями.
    2) Доступ на запись у определенного круга лиц

    $serverName = "#########";
    $conn = sqlsrv_connect( $serverName);
    $sql ="
    SELECT DISTINCT Display_Name,
    Publisher,
    Product_ID
    FROM
    (SELECT
    [v_GS_COMPUTER_SYSTEM].Name0 AS Computer_System_Name,
    [v_GS_OPERATING_SYSTEM].Name0 AS Operating_System_Name,
    [v_GS_COMPUTER_SYSTEM].UserName0 AS Computer_System_User_Name,
    [v_GS_OPERATING_SYSTEM].CSDVersion0 AS CSDVersion,
    [v_GS_NETWORK_ADAPTER_CONFIGUR].IPAddress0 AS IP_Address,
    [v_GS_NETWORK_ADAPTER_CONFIGUR].MACAddress0 AS MAC_Address,
    [v_GS_ADD_REMOVE_PROGRAMS].DisplayName0 AS Display_Name,
    [v_GS_WORKSTATION_STATUS].LastHWScan AS Last_Hardware_Scan,
    [v_GS_ADD_REMOVE_PROGRAMS].Publisher0 AS Publisher,
    [v_GS_ADD_REMOVE_PROGRAMS].ProdID0 AS Product_ID,
    [v_GS_ADD_REMOVE_PROGRAMS].Version0 AS Versions

    FROM v_R_System
    inner join [v_GS_COMPUTER_SYSTEM] ON v_GS_COMPUTER_SYSTEM.ResourceID = v_R_System.ResourceID
    inner join [v_GS_NETWORK_ADAPTER_CONFIGUR] ON v_GS_NETWORK_ADAPTER_CONFIGUR.ResourceID = v_R_System.ResourceID
    inner join [v_GS_ADD_REMOVE_PROGRAMS] ON v_GS_ADD_REMOVE_PROGRAMS.ResourceID = v_R_System.ResourceID
    inner join [v_GS_OPERATING_SYSTEM] ON v_GS_OPERATING_SYSTEM.ResourceID = v_R_System.ResourceID
    inner join [v_GS_WORKSTATION_STATUS] ON v_GS_WORKSTATION_STATUS.ResourceID = v_R_System.ResourceID
    WHERE
    [v_GS_NETWORK_ADAPTER_CONFIGUR].IPAddress0 LIKE '10.233.33.%' or

    ) AS Mapping
    GROUP BY Display_Name,
    Publisher,
    Product_ID";

    $getMapping = sqlsrv_query($conn, $sql);
    while($row = sqlsrv_fetch_array($getMapping, SQLSRV_FETCH_ASSOC))
    {
    echo($row['Display_Name']." ".$row['Publisher']." ".$row['Product_ID']."\n");
    }
    sqlsrv_free_stmt($getMapping);
    sqlsrv_close($conn);

    вот сам скрипт
     
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.554
    Симпатии:
    1.754
    Ну вот даже прямо этот код можно вставить прямо в команду artisan, а вместо echo - код добавления в базу. Опять же, документацию дублировать я здесь не буду.

    То, что вы делаете, это похоже на то, что если бы я сейчас, с моим начальным уровнем немецкого, решил писать статьи в Die Welt или вести радиопередачи на Deutsche Welle