JSON Array to Query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Zwolly Wood

Zwolly Wood

28/10/2019 16:15:54
Quote Anchor link
Hallo allen,

Ik heb:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$someArray
= json_decode(file_get_contents("php://input"), true);
?>


Deze array is bijvoorbeeld;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
(
    [0] => Array
        (
            [number] => 1
            [ledger] => Grootboekrekening 1
            [project] => project 1
            [relation] => relatie
            [debit] => 100
            [credit] => 100
            [tax] => 20
            [date] => 2019-19-10
            [postingdate] => 2019-19-10
            [description] => omschrijving
            [period] => periode
            [id] => DE2A0B8D-E6A2-B6E3-6618-F1FDBF76DE87
        )

    [1] => Array
        (
            [number] => 1
            [ledger] => Grootboekrekening 2
            [project] => project 2
            [relation] => relatie
            [debit] => 100
            [credit] => 100
            [tax] => 20
            [date] => 2019-19-10
            [postingdate] => 2019-19-10
            [description] => omschrijving
            [period] => periode
            [id] => AE2992D0-11DC-FFB4-1AD5-3E694CC6EEA4
        )

)

Nu wil ik deze array omzetten naar sql en in de database plaatsen doormiddel van;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
foreach ($someArray as $key => $value) {

$query = "INSERT INTO journal (number, ledger, project, relation, debet, credit, tax, date, postingdate, description, period, Id) VALUES ('"$value['number']"','"$value['ledger']"','"$value['project']"','"$value['relation']"','"$value['debet']"','"$value['credit']"','"$value['tax']"','"$value['date']"','"$value['postingdate']"','"$value['description']"','"$value['period']"','"$value['Id']"')";

$statement = $connect->prepare($query);
        $statement->execute();
        $query = "";
}

?>


Nu krijg ik in mijn console de volgende melding;
Quote:
<b>Parse error</b>: syntax error, unexpected '$value' (T_VARIABLE) in.

Iemand een idee hoe ik dit kan oplossen??

Alvast bedankt mocht iemand reageren.

Edit:
Code-tags geplaatst in het bericht. Gelieve dit voortaan zelf te doen.
Zie ook de opmaak-codes in de Veel Gestelde Vragen.
Alvast bedankt
Gewijzigd op 29/10/2019 13:08:03 door - Ariën -
 
PHP hulp

PHP hulp

23/01/2020 02:19:00
 
Michael -

Michael -

28/10/2019 16:22:04
Quote Anchor link
Misschien kun je hier iets mee?
 
Adoptive Solution

Adoptive Solution

28/10/2019 16:30:58
Quote Anchor link
Moeten er geen puntjes tussen de variabelen?

VALUES ('" . $value['number'] . "','" . $value['ledger'] . etc ...
 
Zwolly Wood

Zwolly Wood

28/10/2019 16:31:51
Quote Anchor link
Jazeker, opgelost, bedankt voor de hulp!
Gewijzigd op 28/10/2019 16:32:07 door Zwolly Wood
 
- Ariën -
Beheerder

- Ariën -

28/10/2019 16:32:26
Quote Anchor link
Gelukkig hebben we ook code-tags.
Kan je die toevoegen aan je code? Zie ook de opmaakcodes in de Veelgestelde Vragen.

Verder een tipje:
Je kan je SQL-query ook in stukken hakken met enters, dan heb je een mooi overzicht over het gebruik van de quotes.
Gewijzigd op 28/10/2019 16:33:34 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

28/10/2019 16:56:32
Quote Anchor link
Zorg ook dat je je waarden escaped.

Ook loont het de moeite om dit in een transactie te zetten.

Stel dat de data ergens halverwege een quote in een omschrijvingsveld heeft of wat dan ook. Dan breekt je import en heb je de halve batch (vrij vertaald: stront) in je database zitten.

En dan ehm... Wacht eens even.

Je maakt hier gebruik van prepared statements, en ook weer niet, want je plakt gewoon de waarden in de querystring. Dat is echt NIET de bedoeling van prepared statements.

Wat jij hier doet is equivalent met vloeken in de kerk... Snap je het principe van prepared statements?
 
Zwolly Wood

Zwolly Wood

28/10/2019 21:15:03
Quote Anchor link
Bedankt voor de reactie allen. Dit is mijn eerste 'projectje' en probeer alles überhaupt werkend te krijgen :). Ik ga me verder verdiepen in transacties en prepare statements
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.