php - 如何显示表中的列

标签 php mysql

我正在学习 PHP,并试图在我一直在观看的教程之外创建一些代码,以更好地理解它,但我似乎无法弄清楚下面的代码哪里出了问题。我还有很多其他功能都工作得很好,只是这个功能不行。有人能指出我正确的方向吗?谢谢。

我得到的结果是 Catchable fatal error: Object of class User Could not be Converted to string on line 20, which is echo $user . "<br /><br />";

这是我的index.php

<? 
$users = User::db_fields(); 
foreach($users as $user) {
echo $user . "<br /><br />";
}
?>

这是我在 user.php 中的 User 类

<?php 
class User extends OtherStuff {

public static function db_fields() {
global $db;  
return static::find_by_sql("SHOW COLUMNS FROM my_table");
}
}
<?

这是 other_stuff.php 中我的一些 OtherStuff 类

class OtherStuff {

public static function find_by_sql($sql="") {
global $db;
$result_set = $db->query($sql);
$object_array = array();
while($row = $db->fetch_array($result_set)) {
   $object_array[] = static::instantiate($row);
} 
return $object_array;
}

public static function instantiate($record) {
$class_name = get_called_class();
$object = new $class_name;
foreach($record as $attribute => $value){
if($object->has_attribute($attribute)) {
$object->$attribute = $value;
}
} 
return $object;
}
}
?>

最佳答案

嗯....您静态调用 db_fileds()。

User::db_fields();

所以它需要是一个静态函数..

public static function db_fields() {

编辑

您可以将此作为解决方法...

更改您的查询

return static::find_by_sql("SELECT * FROM mytable LIMIT 1");

然后这样做...

$fields = User::db_fields(); 
 foreach($fields as $key=>$value ) {
      echo $key; // This will give the field name
 }

编辑2

保留链接到字段的列名称。

尽管这可能是错误的,因为现在它实例化了多次,并且在对象找不到属性并且没有被写入的情况下会发生什么,然后你会错过一列。

但是这个想法是存在的......

while($row = $db->fetch_array($result_set)) {

    foreach($row as $k=>$v){
       $object_array[$k] = static::instantiate($row);
    }  

} 

关于php - 如何显示表中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24440545/

相关文章:

允许转换为 sql 的 PHP 规范模式

mysql - 如何在更新表单中使用分组依据?在 SQL 中

mysql - 在MySQL中选择某个值下的连续行

php - 如何确保我的 codeigniter 密码重置功能安全?

mysql - 获取特定日期之前的所有行

java - ManyToMany关系,从关系表中删除记录

php - MySQL随机选题

php - 如何使用 php 根据用户角色更改 WordPress 管理页面的背景颜色?

php - Symfony 2 - 顶部菜单未出现在 Sonata admin 中

php - 我如何在 PHP 中找到所有加起来等于给定总和的 N 个单位数、非重复数字集?