0

我有那个奇怪的问题。

while 循环内的数组(在我的情况下为 $smt),不想用所有 30 个值填充(我的测试查询返回 30 行)。它仅包含最新值。我检查了循环,没关系。它重复 30 次,num_rows也返回 30。它仅在我尝试填充使用键的数组时发生,例如$array[$key]。例如,在循环内打印并使用没有键工作的数组,就像他们应该做的那样。

也许我错过了一些东西,但现在我找不到问题。

代码:

if($res = $con->prepare($query)) {

    call_user_func_array(array($res,'bind_param'),$bind);

    if($res->execute()) {

        $res -> bind_result($iStopID,$iDate,$iTime,$iOd,$iDo,$iType);

        while ($res -> fetch()) {

            $smt['date']=$iStopID;

        }

        //test
        print_r($smt['date']);


    } else error($con->error);

    $res -> close();

} else error($con->error);
4

2 回答 2

3

如果您希望 $smt 键是 $iDate 的值,则必须删除撇号,即

$smt[$iDate]=$iStopID;
于 2013-08-13T22:26:44.410 回答
1

Array keys are unique. In your while loop you are assigning $iStopID to your array and using the string '$iDate' as the key:

 $smt['$iDate'] = $iStopID;

The problem is that you are setting the key every time as the string '$iDate' and not the contents of the variable $iDate. Because of this, you are only getting one key (since they are unique). Try this:

 $smt[$iDate] = $iStopID;

Hope this helps!

于 2013-08-13T22:30:30.037 回答