Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wierd php数组?数据库查询后_Php_Arrays - Fatal编程技术网

Wierd php数组?数据库查询后

Wierd php数组?数据库查询后,php,arrays,Php,Arrays,可能重复: 我从一个数据库中进行了查询,结果存储在一个变量中,该变量被认为是一个数组。输出只有一行和一列,因此我使用: echo result[0]; 以输出结果。 然而,我得到一个错误,说: Notice: Array to string conversion in "C:/apache/htdocs...." array 我尝试使用 var_dump result[0]; 然后我明白了 array(1) { [0]=> array(1) { ["var_datain"]=>

可能重复:

我从一个数据库中进行了查询,结果存储在一个变量中,该变量被认为是一个数组。输出只有一行和一列,因此我使用:

echo result[0];
以输出结果。 然而,我得到一个错误,说:

Notice: Array to string conversion in "C:/apache/htdocs...."
array
我尝试使用

var_dump result[0];
然后我明白了

array(1) { [0]=> array(1) { ["var_datain"]=> string(4) "hai!" } } 
所以。。。。我如何让它呼应出值hai来自该数组

如果有关系,我的问题是

    $db = new PDO(DSN, DBUSER, DBPASS);
    $stmt = $db->prepare("CALL test(?)");
    $parameter = 'hai!';
    $stmt->bindValue(1, $parameter, PDO::PARAM_STR);
    $rs = $stmt->execute();
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
    var_dump($result);

这是一个多维数组

echo $result[0]['var_datain'];
这取决于您执行查询的方式(向我们显示更多代码以更好地解释您),但在您的情况下,查询返回的每一行似乎都是另一个包含所选列的数组。即使只选择一个列和一行,它仍然作为多维数组返回

echo $result[0]['var_datain'];

明白了吗?

太棒了!但我也应该能够完成$result[0][0],对吗?因为我引用了它的索引,但是我得到了一个错误:注意:未定义的偏移量:0@VidhuShresthBhatnagar您正在通过
PDO::fetch_ASSOC
执行关联提取,因此您不会收到返回的数字键,只会收到列名中的关联键。因此,必须使用
$result[0]['var\u datain']
。编辑:如果要使用
$result[0][0]
put
PDO::FETCH\u NUM
而不是
PDO::FETCH\u ASSOC
。您还可以使用
PDO::FETCH_BOTH
返回
$result[0][0]
$result[0]['var\u datain']
嗨,我刚做了数组值($result),然后我可以做$result[0][0],但我会改用PDO::FETCH_NUM。谢谢Phius