【发布时间】:2013-12-11 14:56:14
【问题描述】:
我正在为 Facebook 创建应用程序,所有使用该应用程序的用户都被写入数据库。所以我需要经常检查如果用户已经在数据库中,如何正确地做到这一点?
所以我有变量 $name = $user_profile['name']; 它获取用户名
这是我将用户插入数据库的功能。
$mysqli = new mysqli("asd","asd","pw","asd");
if ($stmt = $mysqli->prepare("INSERT into myTable (score, userName) VALUE (?,?) ")) {
if (!$mysqli->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
}
$stmt->bind_param('ss', $score, $name);
$stmt->execute();
if ($stmt->error != '') {
echo ' error:'.$stmt->error;
} else {
echo 'success';
}
$stmt->close();
} else {
echo 'error:'.$mysqli->error;
}
$mysqli->close();
现在我需要If 函数来检查用户是否已经在数据库中。据我了解它应该与插入数据库类似,只是INSERT into 我需要使用SELECT from 只是如何成功地做到这一点?谢谢你。
我读过这个:Best way to check for existing user in mySQL database? 但它对我没有帮助。
更新
现在我的代码如下所示:
$mysqli = new mysqli("host","asd","pw","asdf");
echo "1";
$sql = "SELECT COUNT(*) AS num FROM myTable WHERE userName = ?";
echo "2";
if ($stmt = $mysqli->prepare("SELECT COUNT(*) AS num FROM under WHERE userName = ? ")) {
echo "3";
$stmt->bind_param('s', $name);
echo "4";
$stmt->execute();
echo "5";
$results = $stmt->get_result();
echo "6";
$data = mysqli_fetch_assoc($results);
echo "7";
}
它打印 1 2 3 4 5。这意味着这条线 $results = $stmt->get_result(); 不正确,因为它没有打印值。这里有什么问题?
【问题讨论】:
-
你不应该使用FB用户名(毕竟用户可以更改它),而是FB用户ID。
-
@CBroe 感谢您的回答,在这种情况下,我需要使用用户名,而不是 FB 用户 ID,但感谢您的回答。
标签: php mysql database facebook select