php - imploding and adding characters to a string to generate a sql statement -
i received input textarea in format:
value0 value1 value2 value3
now want explode array, , implode string that
insert `table` (`valuefield`, `myfield`) values ('value0','assignedvalue'), ('value1','assignedvalue'), ('value2','assignedvalue'), ('value2','assignedvalue')
where assignedvalue
fixed.
here did:
$myarray = explode(php_eol, $_post['input']); foreach ($myarray $key => $value) { $myarray[$key] = trim(preg_replace('/\s\s+/', ' ', $value)); } $data = "('" . implode("','assignedvalue'),'", $myarray) . "'"; $sql = "insert `table` (`valuefield`, `myfield`) values $data"; echo $sql;
as result, wrong:
insert `table` (`valuefield`, `myfield`) values ('value0','assignedvalue'),'value1','assignedvalue'),'value2','assignedvalue'),'value3'
also if there better way in regex
please.
if want using implode have do:
$data = "('" . implode("','assignedvalue'),('", $myarray) . "','assignedvalue')";
a little nicer is:
foreach ($myarray $key => $value) { $value = trim(preg_replace('/\s\s+/', ' ', $value)); $myarray[$key] = '(\''. $value .'\',\'assingedvalue\')'; } $data = implode(',', $myarray);
Comments
Post a Comment