我试图在查询中放入3个IF语句,而不是添加一些PHP代码。
显示的错误是FUNCTION admin_demo.in_array does not exist
if($pr_aantal[$i] > 0)
{
// voer query uit
$sql = "INSERT INTO planning_producten
(
planning_id,
product_id,
aantal,
datum_snijden,
datum_zetten,
datum_uitbesteed,
user_id
)
VALUES
(
'".$planning_id."',
'".$pr_id[$i]."',
'".$pr_aantal[$i]."',
IF(in_array('1', '".$pr_bewerking_id[$i]."'), STR_TO_DATE('".$datum_snijden."','%d-%m-%Y'), '0000-00-00'),
IF(in_array('2', '".$pr_bewerking_id[$i]."'), STR_TO_DATE('".$datum_zetten."','%d-%m-%Y'), '0000-00-00'),
IF(in_array('3', '".$pr_bewerking_id[$i]."'), STR_TO_DATE('".$datum_uitbesteden."','%d-%m-%Y'), '0000-00-00'),
'".$_SESSION['user_id']."'
)
";
// resultaat van query
if(!$res = mysql_query($sql,$con))
{
include('includes/errors/database_error.php');
}
}
$pr_bewerking_id[$i]
创建于:
while ($row_i = mysql_fetch_array($res_i))
{
$i++;
// maak select name
$name_bewerking_id = 'name_bewerking_id'.$i;
?>
<tr valign="top">
<td>
<select name="<?php echo $name_bewerking_id ?>[]" multiple="multiple" size="2">
<?php
$sql_bew = "SELECT id, bewerking FROM bewerkingen ORDER BY orderby ASC";
$res_bew = mysql_query($sql_bew,$con);
while ($row_bew = mysql_fetch_assoc($res_bew))
{ ?>
<option value="<?php echo $row_bew['id']; ?>"><?php echo $row_bew['bewerking']; ?></option>
<?php } ?>
</select>
</td>
</tr>
<?php }
然后发送
$pr_bewerking_id[$i] = array();
for ($i = 0; $i <= $pr_aantal_regels; $i++)
{
$pr_bewerking_id[$i] = $_POST['name_bewerking_id'.$i];
}
有什么建议吗?
答案 0 :(得分:1)
我想你想改变这个:
IF(in_array('1', '".$pr_bewerking_id[$i]."'),
对此:
IF(FIND_IN_SET('1', '" . $csv_string . "'),
您的代码中也存在SQL注入漏洞。使用mysql_real_escape_string
或参数化查询。