gpt4 book ai didi

PHP - MySQL 查询将同一行分配给数组中的两个不同索引

转载 作者:行者123 更新时间:2023-11-29 00:14:33 25 4
gpt4 key购买 nike

我有一个查询应该从数据库中获取两行数据,a 和 b。当我在 mysqli_stmt_fetch 循环内转储时,我得到 a 和 b 的数据,然后在循环内,我将它分配为数组的成员 ($Array[] = $结果)。然而,当我随后 vardump $Array 时,b 的数据在数组的两个索引中。

预期结果是a和b的数据都在数组中,但是b的数据只有两个实例。

代码

if ($Query = mysqli_prepare($MySQLObj, "SELECT x.c, x.d, x.e, x.f, y.g, y.h FROM x INNER JOIN y ON (y.i = x.j) WHERE x.k = 0 OR x.k = 1 ORDER BY x.l ASC LIMIT 10;")) // Prepare Query
{

mysqli_stmt_execute($Query); // Execute query
mysqli_stmt_bind_result($Query, $Data["m"], $Data["n"], $Data["o"], $Data["p"], $Data["q"], $Data["r"]); // Bind result to array elements

while (mysqli_stmt_fetch($Query)) // Fetch result
{

$DataArray[] = $Data; // This doesn't work
//var_dump($Data);

}

mysqli_stmt_close($Query); // Close query

}

var_dump($DataArray);

最佳答案

通常你不能_bind_result到$Data["m"], $Data["n"], $Data["o"], ...数组

你需要变量,例如$Data_m , $Data_n ....

但是你可以像这样设置一个 $variable

    $Query->store_result();

$variables = array();
$data = array();

$variables[] = &$Data["m"];
$variables[] = &$Data["n"];
$variables[] = &$Data["o"];
....

call_user_func_array(array($Query, 'bind_result'), $variables);

更新

如果您不想手动设置 $variables[],请尝试

 $meta = $Query->result_metadata();

while($field = $meta->fetch_field())
$variables[] = &$Data[$field->name];

关于PHP - MySQL 查询将同一行分配给数组中的两个不同索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23448786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com