difficulty with insert_batch |
hi guys..
I'm having a hard time, to insert the array, with the format Array ( [nraluno] => 3745 [nomeguerra] => ARTHUR COMPANS [nrmat] => 36422 [serie] => 6º [trimestre] => 2 [turma] => 601 [nrano] => 49 [status] => 1 [disciplinas] => Array ( [0] => Ciências Físicas e Biológicas ) [nrbase] => Array ( [0] => 1087 ) ) Array ( [nraluno] => 3941 [nomeguerra] => CALHEIROS [nrmat] => 36678 [serie] => 6º [trimestre] => 2 [turma] => 601 [nrano] => 49 [status] => 1 [disciplinas] => Array ( [0] => História [1] => LEM - Inglês ) [nrbase] => Array ( [0] => 1089 [1] => 1092 ) ) usage for insert: foreach ($alunos as $key => $value) { $saida_aluno[] = array ( 'disciplinas' => $value['disciplinas'], 'nrbase' => $value['nrbase'], 'nraluno' => $value['nraluno'], 'nomeguerra' => $value['nomeguerra'], 'nrmat' => $value['nrmat'], 'serie' => $value['serie'], 'trimestre' => $value['trimestre'], 'turma' => $value['turma'], 'nrano' => $value['nrano'], 'status' => $value['status'], //1 ENTRADA 0 SAIDA 'data_geracao' => $data_controle, 'nrcomunicado' => $last, 'nrcomunicado' => $last_insert ); $this->db->insert_batch('cmcg_controleaps', $saida_aluno); } an return Error Number: ERROR: syntax error at or near "," LINE 1: ..., "trimestre", "turma") VALUES ('2018-06-13',Array,'ARTHUR C... ^ INSERT INTO "cmcg_controleaps" ("data_geracao", "disciplinas", "nomeguerra", "nraluno", "nrano", "nrbase", "nrcomunicado", "nrmat", "serie", "status", "trimestre", "turma") VALUES ('2018-06-13',Array,'ARTHUR COMPANS','3745',49,Array,95,'36422','6º',1,2,'601')
Probably won't fix the SQL syntax error, but you should move the insert_batch() call outside the foreach() loop.
PHP Code: foreach ($alunos as $key => $value)
Not success, only now inserting the first value the 'trimestre' array:
the code changed.. Tanks guys!! foreach ($alunos as $key => $value) { foreach ($value['disciplinas'] as $k => $v) { $array = array(); $array = $v; } $saida_aluno[] = array ( 'disciplinas' => $array, //'nrbase' => $value['nrbase'], 'nraluno' => $value['nraluno'], 'nomeguerra' => $value['nomeguerra'], 'nrmat' => $value['nrmat'], 'serie' => $value['serie'], 'trimestre' => $value['trimestre'], 'turma' => $value['turma'], 'nrano' => $value['nrano'], 'status' => $value['status'], //1 ENTRADA 0 SAIDA 'data_geracao' => $data_controle, 'nrcomunicado' => $last_insert ); } $this->db->insert_batch('cmcg_controleaps', $saida_aluno);
If look user to error message you can see that one of values you set is array:
Error Number: ERROR: syntax error at or near "," LINE 1: ..., "trimestre", "turma") VALUES ('2018-06-13',Array,'ARTHUR C... ^ INSERT INTO "cmcg_controleaps" ("data_geracao", "disciplinas", "nomeguerra", "nraluno", "nrano", "nrbase", "nrcomunicado", "nrmat", "serie", "status", "trimestre", "turma") VALUES ('2018-06-13',Array,'ARTHUR COMPANS','3745',49,Array,95,'36422','6º',1,2,'601') (06-14-2018, 01:28 AM)neuron Wrote: If look user to error message you can see that one of values you set is array: perfectly!!! I can not insert this value array disciplinas..
@n0cturn0,
You should see what value is in $array prior to you creating your batch query. Your issue might be in the code below foreach ($value['disciplinas'] as $k => $v) { $array = array(); $array = $v; } What value is suppose to be kicked out of the foreach loop when it completes? (06-14-2018, 07:33 AM)php_rocs Wrote: @n0cturn0, tanks to reply! I need all the values the disciplinas array!!
@n0cturn0
While you may need all the values in the array the field in the database may be expecting a string value instead of an array object. This is why I recommend that you see what value the foreach loop is kicking out (which I suspect is an array object).
php_rocs@n0cturn0
While you may need all the values in the array the field in the database may be expecting a string value instead of an array object. This is why I recommend that you see what value the foreach loop is kicking out (which I suspect is an array object). I understood that field in the database may be expecting a string value instead of an array object. Do not know, to do the loop 'disciplinas array ' for insert field the db. example: Array ( [ [nraluno] => 3941 [nomeguerra] => CALHEIROS [nrmat] => 36678 [serie] => 6º [trimestre] => 2 [turma] => 601 [nrano] => 49 [status] => 1 [disciplinas] => Array ( [0] => História [1] => LEM - Inglês ) [nrbase] => Array ( [0] => 1089 [1] => 1092 ) ) insert two value the array disciplinas in field db, and the rest the array (nraluno,nomedeguerra,nrmat..) repeat at the insert. sorry my english! |
Welcome Guest, Not a member yet? Register Sign In |