0

このコードは問題なく動作します。$batsman1name がデータベースの正しい行に新しい値として挿入されます。

for($count = 1; $count <= 22; ++$count)
{
    $setbattingid = 'batsman' . $count . 'battingid';
    $$setbattingid = mysql_real_escape_string($_POST[$setbattingid]);
    $setname = "batsman" . $count . "name";
    $$setname = mysql_real_escape_string($_POST[$setname]);
    $query = "UPDATE batting_new SET batsmanname = NULLIF('$batsman1name', '') WHERE battingid = '$batsman1battingid'";
    $result = mysql_query($query);
    if (!$result) die ("Database access failed: " . mysql_error());
}

このコードでは、データベースは更新されませんが、可変変数 $$setname および $$setbattingid には、上記の $batsman1name および $batsman1battingid と同じ値が含まれています。

for($count = 1; $count <= 22; ++$count)
{
    $setbattingid = 'batsman' . $count . 'battingid';
    $$setbattingid = mysql_real_escape_string($_POST[$setbattingid]);
    $setname = "batsman" . $count . "name";
    $$setname = mysql_real_escape_string($_POST[$setname]);
    $query = "UPDATE batting_new SET batsmanname = NULLIF('$$setname', '') WHERE battingid = '$$setbattingid'";
    $result = mysql_query($query);
    if (!$result) die ("Database access failed: " . mysql_error());
}

何か案は?質問をうまく説明できていない場合はお知らせください。ありがとう。

4

1 に答える 1

1

使用する必要があります:

$query = "UPDATE batting_new SET batsmanname = NULLIF('${$setname}', '') WHERE battingid = '${$setbattingid}'";

ここで説明したように:http://php.net/manual/language.variables.variable.php

于 2012-10-09T08:59:07.407 に答える