-3

现在我明白你不能只使用 echo 来打印数组的内容,你必须使用 foreach 但由于某种原因这不起作用。有任何想法吗?

$rows = $stmt->fetchAll();
foreach ($rows as $key=>$row)
       {
        echo "My value at $key is $row";
       }
}

输出:

My value at 0 is ArrayMy value at 1 is ArrayMy value at 2 is Array
4

6 回答 6

4

看来您已经使用fetchAll.

此方法返回一个数组(行)数组。内部数组有column_name => value元素。因此,例如,如果您检索到列“firstName”和“lastName”,则第一条记录的这些值将$rows[0]['firstName']分别$rows[0]['lastName']为。

正确的方法是:

$rows = $stmt->fetchAll();
foreach ($rows as $key => $row) {
    foreach ($row as $column => $value) {
        echo "My $column value for row $key is $value\n";
    }
}

Protip:注意括号对齐,这对正确性无关紧要,但会使代码更具可读性:)

于 2012-07-12T01:53:30.647 回答
1

对我来说看起来像一个多维数组。尝试var_dumpprint_r

var_dump($rows);
print_r($rows);
于 2012-07-12T01:47:22.657 回答
1

$row 是另一个不能直接转换为字符串的数组。您可以使用此功能检查数组内容。

function d($data)
{
    echo '<pre>';
    print_r($data);
    echo '</pre>';
}
d($stmt->fetchAll());

最好你这样做(如果你忘记删除它的调用不会损害你的网站)

define('ENVIRONMENT', 'development');
function d($data)
{
    if(ENVIRONMENT == 'development')
    {
    echo '<pre>';
    print_r($data);
    echo '</pre>';
    }
}
d($stmt->fetchAll());
于 2012-07-12T01:50:24.193 回答
0
//<pre> tag will give you a well formatted version of var_dump  
echo "<pre>"; 
var_dump($rows);
echo "</pre>";
于 2012-07-12T01:47:28.637 回答
0

试试这个来调试以下内容$row

$rows = $stmt->fetchAll();

foreach ($rows as $key=>$row)
{
    echo "First key: $key | ";

    foreach($row as $subkey => $subrow)
    {
        echo "Subkey: $subkey | Value: $subrow <br />";
    }

}

此外,使用var_dump()print_r()var_export()等函数很重要,它们会为您避免很多问题。

于 2012-07-12T01:51:29.257 回答
0
//@parram $data-array,$d-if true then die by default it is false
 //@author Your name

 function p($data,$d = false){

     echo "<pre>"; 
         print_r($data);
     echo "</pre>"; 

     if($d == TRUE){
        die();
     } 
} // END OF FUNCTION

每当您需要字符串或数组时使用此功能,它会非常好用。有 2 个参数 1.$data - 它可以是数组或字符串 2.$d - 默认情况下它是 FALSE 但如果你设置为 true 那么它将执行 die() 函数

在你的情况下,你可以这样写..

$rows = $stmt->fetchAll();

foreach ($rows as $key=>$row) {
      p($rows);  // to use p function use above code for p() in your code   
}
于 2015-10-04T06:26:00.457 回答