我正在尝试使用以下代码列出表charts-single-tbl
中字段的名称:
$con = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_DATABASE);
$query4 = "SELECT * FROM `charts-single-tbl`" ;
$results = $con->query($query4);
$rows = $results->fetch_fields();
echo $rows->name;
$con->close();
但我收到此错误
注意:尝试在C:\ wamp
中获取非对象的属性
你能告诉我我做错了什么吗?
答案 0 :(得分:0)
mysqli_result::fetch_fields()
提供一个返回值作为对象数组。
mysqli_fetch_fields - 返回表示结果集中字段的对象数组
您的变量$rows
因此是一个数组,但您尝试将其作为单个对象进行访问。您需要遍历它以获取表格中的所有字段名称。
$fields = $results->fetch_fields();
// $fields is an array. Loop over it to get name properties
foreach ($fields as $field) {
echo $field->name . "\n";
}
如果您打算最终获取实际行值,您可以考虑使用fetch_assoc()
启动fetch循环并使用数组键查找字段名称。
$results = $con->query($query4);
while ($row = $results->fetch_assoc()) {
// Fields are the keys of $row
$fields = array_keys($row);
// do whatever else you intend to do with $row values
}
当PHP抱怨不匹配或误用类型时,例如尝试获取非对象的属性,使用简单的var_dump($rows)
进行调试可能会立即指出出错的地方。在这种情况下,它会显示数组结构。