我的声明id如何成为一个数组?

时间:2013-08-02 23:40:34

标签: php html mysql

我已经实现了一个编辑表单,所以一旦我编辑表单并提交,它应该查询数据库并根据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所以不应该只是一个字符串?

1 个答案:

答案 0 :(得分:0)

看看你的$ caseid变量,看看它是什么:

print_r($caseid);

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

$caseid[0]