php - 如何检查用户是否存在于MySQL数据库中?

标签 php mysql select mysqli

如何判断一个用户是否已经存在于数据库中?

我有变量 $name = $user_profile['name']; 它成功返回用户名。

这是我检查用户是否已存在于数据库中的代码部分。

$user_profile = $facebook->api('/me');
$name = $user_profile['name'];
$mysqli = new mysqli("asd", "asdf", "pw", "asdssst");
/* Create the prepared statement */
$stmt = $mysqli->prepare("SELECT COUNT(*) AS num FROM myTable WHERE userName = ?") or die("Prepared Statement Error: %s\n" . $mysqli->error);
/* Bind results to variables */
$stmt->bind_param('s', $name);
/* Execute the prepared Statement */
$stmt->execute();
$data = $stmt->fetch();
if ($data['num'] > 0) {
    echo "bad";
    print "user already exists\n";
} else {
    echo "good";
    $apiResponse = $facebook->api('/me/feed', 'POST', $post_data);
    print "No user in database\n";
}
/* Close the statement */
$stmt->close();

它总是返回:good No user in database 无论用户是否在数据库中。这意味着 $data['num'] 总是 0

附言我知道我需要使用 FB 用户 ID 而不是用户名,但在这种情况下我需要这样做。

最佳答案

我会用这样的东西

$mysqli = new mysqli('',"","","");
$query = 'SELECT username FROM user WHERE username = ?';
$stmt = $mysqli->prepare($query);
$name = 'asdf';
$stmt->bind_param('s', $name);
$stmt->execute();
$stmt->bind_result($user);
if($stmt->fetch())
   echo 'Username '.$user. ' exists';
else 
  echo 'User doesnt exists';
$stmt->close();

关于php - 如何检查用户是否存在于MySQL数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20553591/

相关文章:

mysql - 查询中的 Count、SUM、LEFT JOIN 和 GROUP BY 无法正常工作

mysql - 在 mysql 中使用 gorm 插入类型 []byte 引发 "Error 1241: Operand should contain 1 columns(s)"

mysql - 为什么我的程序产生空结果?

MySQL : weekly and monthly SUM

mysql - 在 MySQL 中组合/堆叠选择结果中的列

html - 选择 DOM 中的一个元素,它不是兄弟元素,但在后面

php - 不存储在数据库 PHP/MYSQL 中的禁用字段

php - 使用 IN() 将查询结果用于另一个查询

Php PDO 绑定(bind)比较的两个项

php - 使用 completionHandler 创建一个 Swift 5 函数来打印 JSON 数据