如何获取mysqli_num_row值

时间:2013-12-16 06:31:32

标签: php

我正在学习并从书中做一些练习,在查询后我感到非常恐怖。

我想知道mysqli_num_row的价值,以进一步了解我的错误,但我没有得到一个值。

我已经检查过,如果我把回音'r';我在屏幕上得到一个r,所以我知道该行正在执行,但我无法获得mysqli_num_row的值。

我应该在最后一行写什么才能在屏幕上显示这个值?

$q = "SELECT user_id, first_name FROM users WHERE email='$e' AND pass=SHA1('$p')";
$r = @mysqli_query($dbc, $q); // Run the query.
echo mysqli_num_row($r);

现在我只是一个空白的屏幕。

感谢。

5 个答案:

答案 0 :(得分:3)

你使用了错误的功能它实际上是mysqli_num_rows();您在s

的末尾遗失了row
echo mysqli_num_rows($r);

http://www.w3schools.com/php/func_mysqli_num_rows.asp

答案 1 :(得分:1)

你可能已经跳过了一封信。尝试:

echo mysqli_num_rows($r);

答案 2 :(得分:1)

我认为您需要编写代码,如下所示。

$q = "SELECT user_id, first_name FROM users WHERE email='$e' AND pass=SHA1('$p')";
$r =  mysqli_query($dbc, $q); // Run the query.
echo mysqli_num_rows($r);

您只需从@mysqli_query中删除@符号。

由于

答案 3 :(得分:1)

你可以尝试这个吗,你错过了在smysqli_num_rows添加mysqli_num_rows()它应该是$e = mysqli_real_escape_string($dbc, $e); $p = mysqli_real_escape_string($dbc, $p); $q = "SELECT user_id, first_name FROM users WHERE email='$e' AND pass=SHA1('$p')"; $r = mysqli_query($dbc, $q) or die(mysqli_error()); echo mysqli_num_rows($r);

{{1}}

答案 4 :(得分:1)

当您从准备好的语句开始学习时,它更容易且不易受到注入攻击。这是一个样本。

/* Create a new mysqli object with database connection parameters */
   $mysqli = new mysqli('localhost', 'username', 'password', 'db');

   if(mysqli_connect_errno()) {
      echo "Connection Failed: " . mysqli_connect_errno();
      exit();
   }

   /* Create a prepared statement */
   if($stmt = $mysqli -> prepare("SELECT user_id, first_name FROM users WHERE email=? AND pass=SHA1(?)")) {

      /* Bind parameters
         s - string, b - blob, i - int, etc */
      $stmt -> bind_param("ss", $e, $p);

      /* Execute it */
      $stmt -> execute();

      /* Get num rows */
      $mum_rows = $stmt -> num_rows();

      /* Bind results */
      $stmt -> bind_result($user_id, $first_name);

      /* Fetch the value. You may need to fetch in loop if has more than 1 rows. */
      $stmt -> fetch();

      /* echo the result. */
      echo $user_id, ' = ', $first_name;

      /* Close statement */
      $stmt -> close();
   }

   /* Close connection */
   $mysqli -> close();

注意:错误处理实施由您完成。
如果您对[{1}}

感到不舒服,也可Object oriented style使用Procedural style