Hallo allen,

Ik heb:

<?php
$someArray = json_decode(file_get_contents("php://input"), true);
?>


Deze array is bijvoorbeeld;

(
    [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;

<?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;

<b>Parse error</b>: syntax error, unexpected '$value' (T_VARIABLE) in.

Iemand een idee hoe ik dit kan oplossen??

Alvast bedankt mocht iemand reageren.

Moeten er geen puntjes tussen de variabelen?

VALUES ('" . $value['number'] . "','" . $value['ledger'] . etc ...
Jazeker, opgelost, bedankt voor de hulp!
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.
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?
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

Reageren