$InnerJoinQuery = $STD->query("
SELECT Users.ID, Users.Username, Users.Password, UserInformation.LastName, UserInformation.Firstname, UserInformation.DOB
FROM Users AS Users
INNER JOIN UserInformation AS UserInformation
ON Users.ID = UserInformation.UserID WHERE Users.Username=".$_SESSION['real_name']."");
$InnerJoinArray = $InnerJoinQuery->fetch_array(MYSQLI_ASSOC);
上記のコードがエラーを引き起こしています。WHERE
それは私の条項のポイントまで機能します。
WHERE Users.Username=".$_SESSION['real_name']."
これを私のinnerjoinに実装するにはどうすればよいですか?
アップデート:
$InnerJoinQuery = $STD->query("
SELECT Users.ID, Users.Username, Users.Password, UserInformation.LastName, UserInformation.Firstname, UserInformation.DOB
FROM Users
INNER JOIN UserInformation
ON Users.ID = UserInformation.UserID WHERE Users.Username = '".$_SESSION['real_name']."'");
$InnerJoinArray = $InnerJoinQuery->fetch_array(MYSQLI_ASSOC);
$_SESSION['UID'] = $InnerJoinArray['ID'];
$_SESSION['Password'] = $InnerJoinArray['Password'];
$_SESSION['Firstname'] = $InnerJoinArray['Firstname'];
$_SESSION['LastName'] = $InnerJoinArray['LastName'];
$_SESSION['DOB'] = $InnerJoinArray['DOB'];
print_r($_SESSION);
これは以下を返します:
配列 ( [実名] => inhumaneslayer [パスワード] => [UID] => [名] => [姓] => [生年月日] => )
これは予想外です。
クエリを次のように変更すると:
$InnerJoinQuery = $STD->query("
SELECT Users.ID, Users.Username, Users.Password, UserInformation.LastName, UserInformation.Firstname, UserInformation.DOB
FROM Users
INNER JOIN UserInformation
ON Users.ID = UserInformation.UserID WHERE Users.Username = 'inhumaneslayer'");
期待される結果が得られます:
配列 ( [実名] => inhumaneslayer [パスワード] => PASSWORDHIDDEN [UID] => 5 [名] => xx [姓] => xx [生年月日] => DOBHIDDEN )
これは予想されます。
unset($_SESSION);
SQL を変更する前に、セッションの設定を解除しています