【发布时间】:2015-08-07 06:32:55
【问题描述】:
我在这里有一个 DB 代码片段...我将发布相关行而不进行错误检查以使其更小...
if ($stmt->bind_result($row[0], $row[1]) === false) etc...
那么下面我有...
<pre><code>
//fill the array up with an array of rows, then increment $ddp.
//$data[$ddp] is the row,
//$data[$dpp][0] is the rows first argument,
//$data[$dpp][1] is the rows 2nd argument returned etc...
$ddp = 0; // this increments up every fetch
while ($stmt->fetch()) {
$data[$ddp][0] = $row[0];
$data[$ddp][1] = $row[1];
$ddp++;
}
</code></pre>
我在上面的方式可以工作....但这是我之前的做法,并且发生了一些奇怪的事情...
<pre><code>
$ddp = 0; // this increments up every fetch
while ($stmt->fetch()) {
$data[$ddp++] = $row;
// I ECHOd out $row here... and it did fetch 2 different rows...
}
</code></pre>
发生的事情是……当我这样做时……
$data[$ddp++] = $row;
$data[0][0] 与 $data[1][0] 相同。
如果$row 在 2 次提取中具有不同的值,那么为什么 $data 最终会得到相同的 2 个数组?
我什至尝试过
$data[] = $row;
和相同的结果。我的解决办法是……
while ($stmt->fetch()) {
$data[$ddp][0] = $row[0];
$data[$ddp][1] = $row[1];
$ddp++;
}
为什么?
抱歉,如果这不是放置此内容的正确位置,但我确实提前找到了解决方案,为了节省时间,我将答案和我的问题放在一起。
【问题讨论】: