如何输出查询数据

时间:2014-06-26 07:51:12

标签: php mysql pdo

我一整天都在努力,查看参考文献,查看与我类似的其他问题,似乎没有任何工作。

问题:我无法输出查询数据。

这是我最近的代码迭代:

try {
    $link = new PDO('mysql:host=localhost;dbname=users_db', 'root', '56235623');
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
$sql = $link->prepare('SELECT * FROM users');
$sql->execute();

$result = $sql->fetchAll(PDO::FETCH_ASSOC);

foreach ($result as $key=>$value){
    echo $key.$value;
}

这是输出:

  
    

注意:第23行的C:\ xampp \ htdocs \ MyProject \ Includes \ cn.php中的数组到字符串转换     0Array     注意:第23行的C:\ xampp \ htdocs \ MyProject \ Includes \ cn.php中的数组到字符串转换     1Array     注意:第23行的C:\ xampp \ htdocs \ MyProject \ Includes \ cn.php中的数组到字符串转换     2Array     注意:第23行的C:\ xampp \ htdocs \ MyProject \ Includes \ cn.php中的数组到字符串转换     3Array

  

3 个答案:

答案 0 :(得分:0)

$value是数组,更改为:

foreach ($result as $key=>$value){
    echo $key;
    //check what $value contains
    print_r($value);
    echo "<br />";
}

答案 1 :(得分:0)

fetchAll返回一个二维数组。第一个维度是行,第二个维度是列。所以你需要嵌套循环:

foreach ($result as $i => $row) {
    echo "Row: $i\n";
    foreach ($row as $key => $value) {
        echo "$key: $value; ";
    }
}

答案 2 :(得分:0)

就像您的通知所暗示的那样,您正在尝试将数组转换为字符串。 如果您只想打印$result变量的内容,可以使用:

var_dump($result);

print_r($result);

如果您想使用foreach以您自己的格式打印每个值:

foreach ($result as $key=>$values){
    echo "Key: " , $key, " Values:", implode(", ", $values), "<br />";
}

implode方法将使用&#34;,&#34;连接数组中的所有值。作为胶水元素。

如果你想遍历你的$values数组,你应该看看Barmar的答案。