-1

我使用这个 php 代码在我的数据库上进行选择:

 $check = 'true';
    $request = trim(strtolower($_REQUEST['username'])); 
    $query_username=sprintf("SELECT * FROM users WHERE username = '$request'");

    $database= mysql_pconnect($hostname, $username, $password) or die(mysql_error()); 

    mysql_select_db($mydatabase, $database);

    $resultUsers = mysql_query($query_username, $mydb) or die(mysql_error());
    $usernameFound= mysql_num_rows($resultUsers);

    if ($usernameFound> 0) { 
        $check = 'false'; 
    }

上面的代码效果很好。但现在我正在尝试使用mysqli. 所以我用这种方式重写了代码:

$connectiondb = new mysqli($hostname, $username, $password, $database);

    /* check connection */
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }

    $request = trim(strtolower($_REQUEST['username'])); 
    $query=sprintf("SELECT * FROM utente WHERE username = '$request'"); 

    if(!$result = $connectiondb->query($query)){
        die('Error in query execution [' . $connectiondb->error . ']');
      }
    $rows = $result->num_rows();

    $result->free();
    $connectiondb->close();
    if($rows>0){
     $check = 'false'; 
    }

但这不起作用!没有产生错误,但我无法获得正确的结果。

可能是什么问题?

4

1 回答 1

2

应该是$rows = $result->num_rows; 我还建议您在使用 mysqli 时切换到使用准备好的语句,您当前的代码容易受到注入。

于 2013-05-05T18:21:02.133 回答