PHP foreach循环语法转义'

时间:2013-03-19 21:48:11

标签: php

我在php中有一个foreach循环,当我对这样的值进行硬编码时工作正常:

foreach ($_POST['icons'] as $icon) {

    $sql .= "('756','$icon'),";
}

我的问题是我必须插入一个会话变量:

$ row_gbl_ltg [ 'EMPNO']

但是当我插入这个时,我得到一个500内部服务器错误,我假设因为使用'喜欢这个:

foreach ($_POST['icons'] as $icon) {

    $sql .= "('$row_gbl_ltg['EmpNo']','$icon'),";
}

我试图逃避'带',但它不起作用......如何正确地逃避这一点并仍然插入我的价值?

3 个答案:

答案 0 :(得分:2)

尝试

$sql .= "('" . $row_gbl_ltg['EmpNo'] . "','$icon'),";

您可以使用'和',但访问关联数组时会有一些限制。

正如@Captain Payalytic所说,你也可以使用{ }作为第二个解决方案。 { }更好地解释PHP开始和结束我们想要使用/解释的var。

答案 1 :(得分:2)

另一个答案是:

 $sql .= "('{$row_gbl_ltg['EmpNo']}','$icon'),";

答案 2 :(得分:1)

我实际上会这样做:

foreach ($_POST['icons'] as $icon) {

    $sql .= '("' . $row_gbl_ltg['EmpNo'] . '", "' . $icon . '"),';
}

请记住在实际执行查询之前删除最后一个逗号。