0
我做了一个简单的mysqli查询与代码ive之前使用过很多次,但从未有过这个问题发生在我身上。我用一个未知数量的列抓取整个表格(它经常变化,所以我不知道确切的值,也没有列名称)。我有一些使用元数据抓取所有内容并将其粘贴到数组中的代码。奇怪的PHP数组行为覆盖值与所有相同的值
这一切工作正常,但输出一团糟:
$stmt -> execute(); //the query is legit, no problems there
$meta = $stmt->result_metadata();
while ($field = $meta->fetch_field())
{
$params[] = &$row[$field->name];
}
call_user_func_array(array($stmt, 'bind_result'), $params);
while ($stmt->fetch())
{
$pvalues[++$i] = $row; //$pvalues is an array of arrays. row is an array
//print_r($row);
print_r($pvalues[$i-1]);
}
$stmt -> close();
我假设$ p值有我要找的结果。我的表格目前有2行。 $ pvalues的数组长度为2. $ pvalues中的两行都完全相同。如果我使用:
print_r($row)
它打印出两行的正确的价值观,但如果后来我检查什么是在$ p值是不正确的(1行被分配到$ p值这两个指数)。
如果我使用
print_r($pvalues[$i-1])
它打印正是我期望的那样,在同一行中表的两倍。
为什么数据没有分配给$ pvalues?我知道$ row在某一点上拥有正确的信息,但它正在被覆盖或丢失。
由于他们使用bind_result,我认为它的目的是更新$ params中的变量,而不是明确地将fetch()的结果赋值给任何东西。 – octern 2012-05-11 16:49:54