0

同じ名前の既存のユーザーが存在する場合、データベースに対してクエリを実行したいと考えています。次に、「return false」を送信します。しかし、私は今フェルメダルンデを1つしか手に入れていません。

警告: 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 に答える