Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何检查MySQL数据库中是否存在用户?_Php_Mysql_Select_Mysqli - Fatal编程技术网

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

Php 如何检查MySQL数据库中是否存在用户?,php,mysql,select,mysqli,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

如何检查数据库中是否已经存在用户

我有变量
$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而不是用户名,但在这种情况下我需要这样做。

检查变量是否有结果。这样的办法应该行得通

//So you have your variable $name here + it returns a value
$name = $user_profile['name'];
//You can put this if statement anywhere below it
if($name > 1){
//log user in
}

检查变量是否有结果。这样的办法应该行得通

//So you have your variable $name here + it returns a value
$name = $user_profile['name'];
//You can put this if statement anywhere below it
if($name > 1){
//log user in
}

我会用这样的东西

$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();

我会用这样的东西

$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();


谢谢您的回答,但我误解了我需要使用的这部分代码的位置?您需要在获得查询结果后放置这类代码。请更新您的答案,使其在我的代码中看起来如何?当然,如果你有时间的话。谢谢你的回答,但是这行的意思是什么呢?
//登录用户
我需要在这里使用什么?如果我使用
echo$name
,它会成功返回FB用户名。而name是string,我如何检查它是否为
>0
?谢谢你的回答,但我误解了我需要使用的这部分代码的位置?你需要在得到查询结果后放入这类代码。你能更新你的答案吗,请当然,如果你有时间的话。谢谢你的回答,但是这行的意思是什么呢?
//登录用户
我需要在这里使用什么?如果我使用
echo$name
,它会成功返回FB用户名。如果用户名是字符串,我如何检查它是否是
>0
?谢谢您的回答,但在这两种情况下,我得到的
用户都不存在
无论用户是否写入数据库。可能这一行不正确
$stmt->bind\u result($User)?从何处获得$user value?bind_result用于将数据绑定到变量中。例如,如果您的查询请求两个参数,如“SELECT username,password…”,那么您告诉bind_result($user,$password)将数据保存到相应的变量中。但在代码中,我有另一个变量$user,它包含FB user ID,这很好。我使用的代码,我有我的需要,它的工作岗位,我不知道为什么你没有。问题一定在其他地方,请您回答,但在这两种情况下,我得到的
用户不存在
无论用户是否写入数据库。可能此行不正确
$stmt->bind\u result($User)?从何处获得$user value?bind_result用于将数据绑定到变量中。例如,如果您的查询请求两个参数,如“SELECT username,password…”,那么您告诉bind_result($user,$password)将数据保存到相应的变量中。但在代码中,我有另一个变量$user,它包含FB user ID,这很好。我使用的代码,我有我的需要,它的工作岗位,我不知道为什么你没有。问题必须在其他地方相关:相关: