如何将PHP查询结果导入数组?

时间:2012-10-21 22:28:11

标签: php arrays

我知道这很容易,但我是一个菜鸟,不知道我在这里做错了什么:

1: $mysqli = new mysqli('test', 'test', 'test', 'test');
2: if ($stmt = $mysqli->prepare($query)) {
3:     if (!$stmt->execute()) {
4:        $out .= "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
5:    }
6:    $out = $stmt->fetch_array();
7: } else {
8:   $out .= $mysqli->error;
9: }

我在第6行遇到Fatal error: Call to undefined method mysqli_stmt::fetch_array()错误。

2 个答案:

答案 0 :(得分:2)

如果您使用的是PHP 5.3或更高版本,则可以使用mysqli_stmt::get_result(),然后使用mysql_result::fetch_array()

$mysqli = new mysqli('test', 'test', 'test', 'test');
if ($stmt = $mysqli->prepare($query)) {
    if (!$stmt->execute()) {
        $out .= "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
    }
    $res = $stmt->get_result();
    while ($out = $res->fetch_array()) {
    }
else {
    $out .= $mysqli->error;
}

此外,您可能需要查看所有MySQL-Improved documentation

您还可以使用mysqli_result::fetch_all()一次获取所有行。

答案 1 :(得分:0)

好的,在重新组合并尝试完全不同的代码之后(因为fetch只是不起作用,不知道为什么)我能够使用这个来完成我的查询功能:

function run_query($query)
{    
  $out = '';
  $db = new PDO("mysql:host=test;dbname=test","test","test");
  $out = $db->query("$query")->fetchAll(PDO::FETCH_OBJ);
  return $out;
}

感谢大家的帮助。

相关问题