coldfusion - получение массива в базу данных - PullRequest
3 голосов
/ 07 марта 2020

Я пытаюсь получить данные с одного веб-сайта для вставки в базу данных другого веб-сайта в Coldfusion - получил данные на второй сайт - и изучил всю документацию, которую я могу найти по командам struct Coldfusion, и мне просто кажется, что go по кругу -

это просто простой массив, который я хочу загрузить в таблицу - таблицы с двух сайтов идентичны -

очевидно, мне нужен очень простой шаг пошаговая инструкция, чтобы понять, как получить данные в значение, которое я могу загрузить во вторую базу данных - может кто-нибудь помочь

- это код, который я использовал для получения данных - и изображение результатов - если изображение не показывает URL-адрес http://www.tectrics.com/english/map/getjson.cfm

<cfset urlAddress="http://www.tectrics.com/english/map/localjson.cfm">
<cfhttp url="#urlAddress#" method="GET" resolveurl="Yes" throwOnError="Yes"/>
<cfset meetlist=DeserializeJSON(CFHTTP.FileContent)>
<cfdump var="#meetlist#">

массив изображений

Ответы [ 2 ]

1 голос
/ 07 марта 2020

У тебя хорошее начало. Содержимое вашей переменной meetlist содержит массив структур. Так что все, что вам нужно сделать, это l oop через массив структур и выполнить вставку для каждого элемента массива. Построение существующего кода, вот что вам нужно.

Некоторые улучшения в этом примере кода должны включать блоки <cftry>, <cfcatch> и <cftransaction>, но этого должно быть достаточно для начала работы.

<cfset urlAddress="http://www.tectrics.com/english/map/localjson.cfm">
<cfhttp url="#urlAddress#" method="GET" resolveurl="Yes" throwOnError="Yes"/>
<cfset meetlist=DeserializeJSON(CFHTTP.FileContent)>
<cfdump var="#meetlist#"> <!---  Remove this dump --->

<cfloop array="#meetlist#" index="i">
    <!---  each loop iteration will contain a struct called "i". Do an insert for each iteration of the loop --->
    <cfquery datasource="mydatasource">
        INSERT INTO table_name (
            attended, 
            childcare, 
            childfriend,
            ...
        )
        VALUES (
            <cfqueryparam value="#i.attended#" cfsqltype="cf_sql_integer">, <!---  use the appropriate cfsqltype that matches the column's data type --->
            <cfqueryparam value="#i.childcare#" cfsqltype="cf_sql_varchar">,  <!---  use the appropriate cfsqltype that matches the column's data type --->
            <cfqueryparam value="#i.childfriend#" cfsqltype="cf_sql_varchar">,  <!---  use the appropriate cfsqltype that matches the column's data type --->
            ...
        )
    </cfquery>
</cfloop>
0 голосов
/ 07 марта 2020

Мне нравится ответ пользователя user12031119. Но я бы добавил еще немного

<cfset urlAddress="http://www.tectrics.com/english/map/localjson.cfm">
<cfhttp url="#urlAddress#" method="GET" resolveurl="Yes" throwOnError="Yes"/>

<cfscript>
meets = DeserializeJSON(CFHTTP.FileContent);

for(meet in meets) {
    EntitySave(EntityNew("table_name", meet)); 
}
</cfscript>

Entity

Мне нужно было бы включить ORM и создать определение Entity. Посмотрите на ColdFusion Entities и ORM, как это сделать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...