我正在创建一个函数来根据用户ID获取用户数据。这是我创建的功能:
function getUserData($data, $id) {
$query = $this->db->query('SELECT ' . $data . ' FROM users WHERE id = "' . $id . '"');
return $query->result();
}
我在home_view.php文件中调用此方法:
<?php $username = $this->model_users->getUserData('username', 3); ?>
当我这样做时,我收到错误
A PHP Error was encountered
Severity: Notice
Message: Array to string conversion
Filename: views/home_view.php
Line Number: 25
有人可以告诉我为什么要这样做吗?
答案 0 :(得分:0)
getUserData()
将返回数据库结果。如果您希望它返回单值更新该函数以返回单个值。您仍然需要确保结果有效并处理错误,但下面的内容应该可以帮助您入门
参考 - https://ellislab.com/codeigniter/user-guide/database/results.html
function getUserData($data, $id) {
$query = $this->db->query('SELECT ' . $data . ' FROM users WHERE id = "' . $id . '"');
$result = $query->result_array();
return $results[$data];
}
答案 1 :(得分:0)
当您使用
返回时,假设您获得了有效的回报result();
codeigniter在失败时生成一个空数组,否则返回一个对象数组。在db上运行查询以查看它是否按照您的意图执行。
我也认为你应该逃避那里的那些变量......
答案 2 :(得分:0)
您的函数将返回标准PHP对象的数组,以访问您之后必须添加此行的用户名:
<?php
$username = $this->model_users->getUserData('username', 3);
echo $username[0]->username;
?>
此代码仅在您获得单个记录时才有效。
您可以使用 print_r()这样的功能来检查:
<?php print_r($username); ?>