ユーザが初めてログインするたびに、そのユーザに関する情報を保存します。ユーザーが既にエントリを持っていて、エントリの期限が切れている場合は、更新する必要があります。私の問題は、すでにエントリがあるかどうかを確認するために、データベースとユーザーを比較しようとしています。私は正常にユーザーの詳細をログに記録しますが、ユーザーがログインするたびにこれを行います。以下で私のコードを見つけることができます。クエリ結果を現在のユーザと比較する
$conn = new mysqli('host', 'user', 'password', 'db');
if ($conn->connect_error) {
die("Error; Contact Support!");
}
$stmt = $conn->prepare("select * from users where steamid=? ");
$stmt->bind_param('s', $steamprofile['steamid']);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($res);
$duplicate = mysqli_num_rows($res);
if ($duplicate == 0) {
$stmt1 = $conn->prepare("REPLACE INTO `users` SET `steamid` = ?,`realname` = ?,`username` = ?");
$stmt1->bind_param('sss', $steamprofile['steamid'], $steamprofile['realname'], $steamprofile['personaname']);
$stmt1->execute();
$stmt1->store_result();
$stmt1->bind_result($res1);
if ($res1 === TRUE) {
echo "";
}
$stmt1->close();
$stmt->close();
mysqli_close($conn);
}
'$ duplicate'は信じていないと信じていますが、エラーは発生しません。私は、ユーザーが既にDBエントリを持っているかどうかを確認する方法については少しも手掛かりがありませんが、これは私の悲しい試みです。 @scaisEdge – Nhabbott
steam idはuser_idですか? .. $ steamprofile ['steamid'] ..egの適切な値を持っていることを確認してください。var_dump($ steamprofile ['steamid']); $ duplicateのようにチェックしてください:var_dump($ duplicate); – scaisEdge