1

編集フォームを実装したので、フォームを編集して送信すると、データベースにクエリを実行し、に基づいて値を変更することになっていますが、にcaseidクエリを実行するとエラーが発生し$caseid、次のエラー:

配列から文字列への変換。

誰かが私が間違っていることを理解するのを手伝ってくれますか?

問題の原因となるコア スニペットは次のとおりです。

<?php if($_SERVER['HTTP_ACCEPT'] != "*/*" and isset($_REQUEST['executa']) and $_REQUEST['executa'] != "")
{
    $msg = edit_case($_REQUEST, $dbi,$Session_Userid, $pixel_header_ary, $caseid);
    if ($msg == ""){
        switch($_REQUEST['executa'])
        {
        case 'view':
            $msg = "Edited a request successfully.";
            break;

            case 'list':
            $url = "location:main.php";
            header($url);
            break;

            default:
            break;
        }
    }
    else{
        echo $msg;
    }
} ?>
<fieldset>
    <input type="hidden" name="executa" value="" />
    <input type="hidden" name="caseid" value="<?php echo $_REQUEST['request_id'];?>" />
    <div id="detalle_info">
        <div class="bloque_info"><h1><br>Case Info.</h1></div>
        <table id="case_info" class="tabla_info_a" summary="">
            <?php
                print_case_info($caseModel);
            ?>
        </table>

    </div>

function edit_case($req,$dbi,$suid, $pixel_header_ary, $caseid)
{
    $name = $_REQUEST['case_name'];
    $silver = $_REQUEST['sil_ver'];
    $lot = $_REQUEST['lot'];
    $wafer = $_REQUEST['wafer'];
    $setver = $_REQUEST['set_ver'];
    //$sql = "UPDATE `test`.`case` SET case_name = '$name' where case_id = '85'";
    $sql = "UPDATE `test`.`case` SET case_name = '$name' where case_id = $caseid";
    $dbi->query($sql);

実際のコードは長すぎるので、これらのスニペットで十分に明確になることを願っています..

問題は$caseid明らかに配列であることです。

編集:問題はまだ発生しています。私が混乱している最大の理由は、それがどのようにして配列になったのかさえわからないからだと思います...私はIDを要求しているだけなので、それは単なる文字列であってはなりませんか?

4

1 に答える 1