gpt4 book ai didi

php - 调用成员函数 row() 错误 | $row = $query->row(); |代码点火器

转载 作者:行者123 更新时间:2023-11-30 00:49:08 27 4
gpt4 key购买 nike

首先我要说的是,我主要是一名 iOS 开发人员,最近才开始探索全栈开发的惊心动魄的冒险。我是 PHP 和 MySQL 的新手。话虽如此,我有一个问题,我希望需要一个直接的解决方案。

我正在为一个拥有预先存在的数据库的客户端创建新的 API,他们希望在其中使用电子邮件地址和密码来验证用户身份。

我的代码:

客户:我首先将表单中的电子邮件地址和密码发布到 PHP 脚本。我已验证该帖子是否按预期发生,即我收到了用户输入的电子邮件地址和密码。 (对于我的问题,只有电子邮件是相关的。)我不想进入“加密您的密码”的讨论。这不是我的问题。

服务器:(就其值(value)而言,这使用了 CodeIgniter 框架)

public function authenticateUser()
{
$user = $_POST['user'];
$password = $_POST['password'];

$this->load->model('user_model');
// for testing purposes, I'm just trying to echo the email address.
echo $this->user_model->authenticateUser('user', $user, $password);
}

user_model 中的authenticateUser 函数:

 public function authenticateUser($table, $email, $password)
{
$sql = "SELECT email FROM " . $table . " WHERE email = " . "$email";
$query = $this->db->query($sql);
$row = $query->row(); // this is the line referenced in the error.

return $row->email;
}

为了清楚起见,我调用参数 $user,直到它传递给authenticateUser,然后我将其称为 $email。显然这无关紧要。

这是正在生成的错误:

Fatal error: Call to a member function row() on a non-object in /path/to/core/MY_Model.php on line 76



76 || $row = $query->row();

电子邮件以 varchar(100) 形式存储在用户表的数据库电子邮件列中。

如果我使用 userId 等其他条件进行查询,我可以很好地访问电子邮件地址,但我无法使用电子邮件地址作为查询的搜索条件。 (抱歉,如果我没有使用正确的术语。)

我是否需要对电子邮件地址做一些额外的事情才能将其用作对用户进行身份验证的方式?我这一切都错了吗?任何帮助将不胜感激。

预先感谢您花时间考虑我的问题。

更新

在提出问题后 8 小时之前我无法解决自己的问题,但我想现在更新我的问题,以便社区知道问题已解决。这解决了我的问题:

$sql = "SELECT email FROM " . $table . " WHERE email = '".$email."'";

非常感谢大家快速、热情的回复! :)

最佳答案

将模型函数中的 sql 查询更改为:

$sql = "SELECT email FROM '".$table."" WHERE email = '".$email."'";

关于php - 调用成员函数 row() 错误 | $row = $query->row(); |代码点火器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21130496/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com