0

如果存在同名的现有用户,我想查询我的数据库。然后我想发送一个“return false”。但我现在只得到一个felmeddalnde。

警告:mysql_num_rows () 期望参数 1 是资源,布尔值

function DoInsertNewUser($name, $password) {
    var_dump($name);
    var_dump("inne i databasen");
    //tar kontakt med databasen
    $DBConnection = new DBConnection();
    $DBConnection -> Connect();

    $result = mysql_query("SELECT m_username FROM user WHERE m_username ='$name'");
    $number_of_rows = mysql_num_rows($result);

    var_dump($number_of_rows);

    if ($number_of_rows  > 1) {
        var_dump('Användarnamnet finns redan');
    }
    else 
    {
        //ställer en sql-fråga.
        $sql = "INSERT INTO `user`(`m_username`,`m_password`) VALUES (?,?)";

        $stmt = $DBConnection -> prepare($sql);
        $stmt -> bind_param("ss", $name, $password);
        if ($stmt === FALSE) {

            return false;
        }

        $stmt -> execute();
        // ger resultet.
        while ($stmt -> fetch()) {
            $stmt -> close();
            return true;
        }
        $stmt -> close();
        return false;
    }
}
4

2 回答 2

2

您可以只计算拥有该用户名的用户数量。

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Not connected : ' . mysql_error());
 }

$db_selected = mysql_select_db('db_name', $link);
if (!$db_selected) {
   die ('Can\'t use db_name : ' . mysql_error());
}
$result = mysql_query("SELECT COUNT(*) AS count FROM user WHERE m_username ='".$name."'", $link) or die(mysql_error());

$count = mysql_fetch_assoc($result)['count'];

根据需要更新 localhost、mysql_user、mysql_password 和 db_name。

于 2012-06-11T05:31:46.557 回答
1

代替

$result = mysql_query("SELECT m_username FROM user WHERE m_username ='$name'");

$result = mysql_query("SELECT m_username FROM user WHERE m_username ='$name'") or die(mysql_error());
于 2012-06-11T05:27:26.483 回答