-2

次のような値をハードコーディングすると、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'),";
}

' を \' でエスケープしようとしましたが、うまくいきません...これを適切にエスケープし、値を挿入するにはどうすればよいですか?

4

3 に答える 3

2

試す

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

' と " で遊ぶことができますが、関連付けられた配列にアクセスするときにいくつかの制限があります。

そして@Captain Payalyticが言ったように、{ }2番目のソリューションとしてvarの周りで遊ぶこともできます。 { }PHP に、使用/解釈したい var の開始位置と終了位置をより適切に説明します。

于 2013-03-19T21:49:01.453 に答える
2

他の答えの代わりに:

 $sql .= "('{$row_gbl_ltg['EmpNo']}','$icon'),";
于 2013-03-19T21:50:17.260 に答える
1

私は実際に次のようにします:

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

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

実際にクエリを実行する前に、最後のコンマを忘れずに削除してください。

于 2013-03-19T21:50:46.797 に答える