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

0

看看你的 $caseid 变量,看看它是怎么回事:

print_r($caseid);

如果事实证明它实际上是一个数组,则可能需要指定键:

$caseid[0]
于 2013-08-02T23:45:58.480 回答