0

それをループに入れる可能性はありますか?

if (!empty($_POST["textDE"])) {
    $mysqli = $connect->prepare("INSERT INTO `l10n-strings` (`translationID`, `languageCode`, `text`) VALUES (?, ?, ?)");
    $mysqli->bind_param('iss', $l10id, $languageCodeDE, $textDE);
    $mysqli->execute();
}

if (!empty($_POST["textEN"])) {
    $mysqli = $connect->prepare("INSERT INTO `l10n-strings` (`translationID`, `languageCode`, `text`) VALUES (?, ?, ?)");
    $mysqli->bind_param('iss', $l10id, $languageCodeEN, $textEN);
    $mysqli->execute();
}

if (!empty($_POST["textES"])) {
    $mysqli = $connect->prepare("INSERT INTO `l10n-strings` (`translationID`, `languageCode`, `text`) VALUES (?, ?, ?)");
    $mysqli->bind_param('iss', $l10id, $languageCodeES, $textES);
    $mysqli->execute();
}

if (!empty($_POST["textFR"])) {
    $mysqli = $connect->prepare("INSERT INTO `l10n-strings` (`translationID`, `languageCode`, `text`) VALUES (?, ?, ?)");
    $mysqli->bind_param('iss', $l10id, $languageCodeFR, $textFR);
    $mysqli->execute();
}

if (!empty($_POST["textIT"])) {
    $mysqli = $connect->prepare("INSERT INTO `l10n-strings` (`translationID`, `languageCode`, `text`) VALUES (?, ?, ?)");
    $mysqli->bind_param('iss', $l10id, $languageCodeIT, $textIT);
    $mysqli->execute();
}       
4

1 に答える 1

2
$languages = array('DE', 'EN', 'ES', 'FR', 'IT');

foreach ($languages as $lang) {
    $langKey = 'text' . $lang;
    if (!empty($_POST[$langKey])) {
        $mysqli = $connect->prepare(
            "INSERT INTO `l10n-strings` (`translationID`, `languageCode`, `text`) ".
            "VALUES (?, ?, ?)"
        );
        $mysqli->bind_param(
            'iss',
            $l10id,
            ${'languageCode'.$lang},
            ${$langKey}
        );
        $mysqli->execute();
    }
}

可変変数を使用すると、ルックアップ配列を使用してこれを簡単に行うことができます。

また、PHP 構成で register globals を無効にします。これはセキュリティ上の問題です。

于 2013-04-07T01:02:05.190 に答える