Php 从MySQLi prepared语句获取assoc或数字数组无效

Php 从MySQLi prepared语句获取assoc或数字数组无效,php,arrays,mysqli,Php,Arrays,Mysqli,我无法从mysqli prepared语句中获取assoc或数字数组。我从代码中搜索和研究以获得它,但这是不可能的。我根据所有代码生成此代码。我真的认为这是正确的,但无论如何都不行: $id = '134610'; $sql = "SELECT * FROM table WHERE id = ?"; $stmt = $mysqli->stmt_init(); $stmt->prepare($sql); $stmt->bind_param(

我无法从mysqli prepared语句中获取assoc或数字数组。我从代码中搜索和研究以获得它,但这是不可能的。我根据所有代码生成此代码。我真的认为这是正确的,但无论如何都不行:

    $id = '134610';
    $sql = "SELECT * FROM table WHERE id = ?";
    $stmt = $mysqli->stmt_init();
    $stmt->prepare($sql);
    $stmt->bind_param("i", $id);
    $stmt->execute();
    $result = $stmt->get_result();

            while ($array = $result->fetch_array(MYSQLI_ASSOC)) 
                               // or fetch_array(MYSQLI_NUM))
            print_r($array);

我终于用代码解决了这个问题:

$id = '134610';
$sql = "SELECT * FROM table WHERE id = ?";
$stmt = $mysqli->stmt_init();
$stmt->prepare($sql);
$stmt->bind_param("i", $id);
$stmt->execute();
$array = self::bind_result_array($stmt);
for($i=0;$stmt->fetch();$i++)
    $ArrayOfArrays[$i] = self::getCopy($array);
$stmt->close();
return $ArrayOfArrays;
这有两个功能:

public function bind_result_array($stmt)
{
$meta = $stmt->result_metadata();
$result = array();
while ($field = $meta->fetch_field())
{
    $result[$field->name] = NULL;
    $params[] = &$result[$field->name];
}

call_user_func_array(array($stmt, 'bind_result'), $params);
return $result;
}


public function getCopy($row)
{
return array_map(create_function('$a', 'return $a;'), $row);
}

对不起,我弄错了,但这些方法都不行。我一直在测试它们。我将编辑我的问题以更正错误。谢谢那么,输出是什么?没有输出。执行服务器停止执行。没有错误日志。
public function bind_result_array($stmt)
{
$meta = $stmt->result_metadata();
$result = array();
while ($field = $meta->fetch_field())
{
    $result[$field->name] = NULL;
    $params[] = &$result[$field->name];
}

call_user_func_array(array($stmt, 'bind_result'), $params);
return $result;
}


public function getCopy($row)
{
return array_map(create_function('$a', 'return $a;'), $row);
}