Para empezar lo que haces es totalmente inseguro, NUNCA pongas algo que viene del navegador directamente en la consulta.
Lo que puedes hacer es algo así:
Código PHP:
Ver original<form method="post">
<select name="campodetexto[]">
<option value="1">opc a</option>
<option value="2">opc b</option>
<option value="3">opc c</option>
<option value="4">opc d</option>
<option value="5">opc e</option>
</select>
<input name="valor[]">
<select name="campodetexto[]">
<option value="1">opc a</option>
<option value="2">opc b</option>
<option value="3">opc c</option>
<option value="4">opc d</option>
<option value="5">opc e</option>
</select>
<input name="valor[]">
<select name="campodetexto[]">
<option value="1">opc a</option>
<option value="2">opc b</option>
<option value="3">opc c</option>
<option value="4">opc d</option>
<option value="5">opc e</option>
</select>
<input name="valor[]">
</form>
<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_database');
{
}
$stmt = $mysqli->prepare("INSERT INTO tabla (opcion, valor) VALUES (?, ?);");
$stmt->bind_param('ss', $opcion, $valor);
foreach($_POST["campodetexto"] as $nro => $opcion)
{
$valor $_POST["valor"][$nro];
$stmt->execute();
}
$stmt->close();
$mysqli->close();
Lo que tienes son filas variables no columnas variables.