我正在尝试添加一个连接两个表的查询,其中包含' id(s)'彼此相等,从那里我想显示两者的信息。 (第一个表格是' sign_in'由基本帐户凭据组成,第二个表格包含用户的个人信息
以下示例似乎只显示第一行的信息,但不会再返回任何内容。
$id = $_SESSION['user_session'];
$information = $db_connection->prepare(
"SELECT sign_in.id, sign_in.username, sign_in.email_address, account.id, account.first_name, account.last_name
FROM sign_in
INNER JOIN account
WHERE sign_in.id = account.id"
);
$information->execute(array(
'id' => $id
));
$userRow = $information->fetch(PDO::FETCH_ASSOC);
使用fetchAll(PDO::FETCH_ASSOC)
返回所有行和指定的信息;但是,在尝试获取关联的帐户信息(用户名,电子邮件地址等)时,不会返回任何内容。
例如,var_dump($userRow['first_name']); die;
返回NULL。
非常感谢任何解释或帮助。
示例数据库结构:
运行查询后
答案 0 :(得分:1)
您的查询中未使用 $id
。在下面的代码中,我使用常规占位符 ?
,因为它们更易于使用。
$id = $_SESSION['user_session'];
$information = $db_connection->prepare(
"SELECT sign_in.id, sign_in.username, sign_in.email_address, account.id, account.first_name, account.last_name
FROM sign_in
INNER JOIN account
WHERE sign_in.id = ?"
);
$information->execute(array(
'id' => $id
));
$userRow = $information->fetch(PDO::FETCH_ASSOC);