我正在尝试将mysql查询结果放入PHP数组中。当我运行我的脚本并打印数组时,它不会显示从mysql表中获取的信息,而是显示有关该数组的信息。
这是我的代码:
<?php
class db {
public $conn;
function dbLogin() {
$this->conn = new mysqli("1.2.4.3","user","pwd","database");
}
public function selectQuery() {
$this->dbLogin();
$query = "
SELECT *
FROM myTable
";
echo "<pre>";
$resultArray = Array();
if ($result = $this->conn->query($query)) {
while ($row = $result->fetch_array()) {
$resultArray[] = $result;
}
}
var_dump($resultArray);
echo "</pre>";
}
}
$fData = new db();
$fData->selectQuery();
?>
当我运行上面的脚本时,我得到了这个:
array(88) {
[0]=>
object(mysqli_result)#3 (5) {
["current_field"]=>
int(0)
["field_count"]=>
int(34)
["lengths"]=>
NULL
["num_rows"]=>
int(88)
["type"]=>
int(0)
}
[1]=>
object(mysqli_result)#3 (5) {
["current_field"]=>
int(0)
["field_count"]=>
int(34)
["lengths"]=>
NULL
["num_rows"]=>
int(88)
["type"]=>
int(0)
}
...
}
以上是页面上显示的88个显示/对象/数组实例中的前两个。但它不会显示来自数据库的实际信息。
到目前为止我已尝试过:
我已经尝试了echo
,var_dump
,print_r
和printf
数组而没有运气。我真的很想在数组中看到查询结果,所以我知道我的脚本按照我想要的方式工作,但我似乎无法弄清楚如何做到这一点。
我知道该查询工作正常,如果我只用$resultArray[] = $result;
替换echo $result[0] . $result[1] (etc...)
,我可以看到该表中的结果。
如何从查询中查看数组中的数据,以便知道我的脚本正在运行?
答案 0 :(得分:3)
将$resultArray[] = $result;
更改为$resultArray[] = $row;
。
答案 1 :(得分:1)
除了组件名称之外,添加到someOne的解决方案,var_dump()
确实也为您提供了数组的值。数据类型后括号中的数字或字符串是数组的值:
array(88) {
[0]=>
object(mysqli_result)#3 (5) {
["current_field"]=>
int(0)
["field_count"]=>
int(34)
["lengths"]=>
NULL
["num_rows"]=>
int(88)
["type"]=>
int(0)
}
此处,字段current_field
的类型为int
,值为0
。 num_rows
也有类型int
和值88
等。
答案 2 :(得分:1)
请更改
中的代码if ($result = $this->conn->query($query)) {
while ($row = $result->fetch_array()) {
$resultArray[] = $result;// this would be $row
}
}
要
if ($result = $this->conn->query($query)) {
while ($row = $result->fetch_array()) {
$resultArray[] = $row;
}
}