我需要对PDO有所帮助。我已经创建了一个小包装来扩展PDO
功能,这个类非常简单,我希望将注意力集中在select
方法上,这适用于简单查询,但如果我插入{{1}似乎JOIN
将无法执行该语句。这是方法:
PDO
现在在构造函数中我将异常启用为:
public function select($sql, $array = array(), $fetchMode = PDO::FETCH_ASSOC)
{
$sth = $this->prepare($sql);
foreach ($array as $key => $value)
{
$sth->bindValue("$key", $value);
}
$sth->execute();
return $sth->fetchAll($fetchMode);
}
我将此public function __construct($DB_TYPE, $DB_HOST, $DB_NAME, $DB_USER, $DB_PASS)
{
parent::__construct($DB_TYPE.':host='.$DB_HOST.';dbname='.$DB_NAME, $DB_USER, $DB_PASS);
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
包装器保存在PDO
属性中,因此我可以将db
函数称为:select
,检查感兴趣的查询:
$this->db
如何看到我正在尝试选择用户$userData = $this->db->select('SELECT id as user_id, email as user_email, role as role_slug
FROM users
INNER JOIN roles ON roles.id = users.role
INNER JOIN user_settings ON user_settings.id_user = user.id
WHERE company = :company, username = :username, password = :password',
array(':company' => $company, ':username' => $username, ':password' => $password));
上的id, email, role
,我还需要在名为users
的另一个表上获取该角色表roles
上的用户设置。现在,user_settings
位于名为username
的表格上,用于完整的结构:
用户
user_settings
user_settings
id|id_company|first_name|last_name|email|mobile_phone
角色
id_user|username|password
我真的不知道这个错误意味着什么。谁知道我做错了什么?
谢谢,对不起任何错误,我是这个网站的新人。
答案 0 :(得分:1)
WHERE company = :company, username = :username, password = :password
不正确,您无法使用,
分隔条件,请使用AND
或OR
WHERE company = :company AND username = :username AND password = :password