带有签入数组的 mysql 查询中的 IF 语句
我试图在查询中放入 3 个 IF 语句,而不是添加一些 php 代码。 显示的错误是 FUNCTION admin_demo.in_array 不存在
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];
}
任何建议吗?
I'm trying to put 3 IF statements in an query instead of adding some php code.
The error that is shown is 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]
is created with:
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 }
And send thru
$pr_bewerking_id[$i] = array();
for ($i = 0; $i <= $pr_aantal_regels; $i++)
{
$pr_bewerking_id[$i] = $_POST['name_bewerking_id'.$i];
}
Any suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为你想改变这一点:
对此:
你的代码中也存在 SQL 注入漏洞。使用 mysql_real_escape_string 或参数化查询。
I think you want to change this:
To this:
You also have SQL injection vulnerabilities in your code. Use
mysql_real_escape_string
or parameterized queries.