Skip to content
Advertisement

PHP: foreach insert into, a exploded-list

Everything seems correct, but nothing happens. I want to INSERT a PHP exploded keyword list. into the new table, (already working/ OK): product_keywords

product_id     keyword

from my old table PRODUCTS,

product_id     keywords (a comma-list)

Where is the error(?)

explode echo TEST (already working/ OK)

$teile_arr = explode(",", $stringx);

foreach($teile_arr as $keyword){
echo " ID: ".$res_id[$i]."<br>";
echo "KW: ".$keyword."<br>";
}

html echo TEST result OK:

KW: Christmas
ID: 544405
KW: tree
ID: 544405
KW: Santa
ID: 544405

display input echo (already working/ OK)

foreach($teile_arr as $keyword){
echo "<input type='text' name='keyword".$res_id[$i]."' value='".$keyword."'>";
}

not working, table is still empty PHP does not insert any content in the database. There must be a problem with “foreach” at this point.

foreach($teile_arr as $keyword){
$sql="INSERT IGNORE INTO product_keywords SET product_id='".$res_id[$i]."', keyword='".$keyword."";
$db->execute($sql);
}

Advertisement

Answer

Insert statements use VALUES, update statements use SET.

"INSERT IGNORE INTO product_keywords SET product_id='".$res_id[$i]."', keyword='".$keyword."";

Should be

"INSERT IGNORE INTO product_keywords(product_id,keyword) VALUES ('{$res_id[$i]}', '{$keyword}')";

Also, you should be using prepared statements to protect from sql injection attacks.

How can I prevent SQL injection in PHP?

User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement