为什么mysqli_num_rows总是返回NULL?

时间:2014-07-11 16:52:42

标签: php mysql apache http

我想计算users表中具有特定名称和pwd的行,如果存在,则该值应为1。   但无论用户是否存在,结果总是返回null(不为0)。   我甚至将查询简单地更改为“SELECT * FROM users”,并以相同的结果结束。   而且我很确定DATABASE和TABLE的名称是真的,并且表不是空的!

顺便说一句,为什么我必须在“mysqli_query”之前使用“@”符号才能摆脱错误?   THX!

enter code here
<?php
   #$mysql_db_hostname = "localhost";
   $mysql_db_hostname = "127.0.0.1";
   $mysql_db_user = "root";
   $mysql_db_password = "";
   $mysql_db_database = "smartFSUsers";
   $con = mysqli_connect($mysql_db_hostname, $mysql_db_user,       $mysql_db_password,$mysql_db_database);
   if (!$con) {
       trigger_error('Could not connect to MySQL: ' . mysqli_connect_error());
     }
   $name = $_GET["name"];
   $password = $_GET["password"];
   $query = "SELECT * FROM users WHERE name='$name' AND password='$password'";
   $result =@mysqli_query($query,$con);
   echo($result);
   $row=@mysqli_num_rows($result);
   echo"the row num is $row \n";
   ?>

1 个答案:

答案 0 :(得分:1)

RTM:http://php.net/mysqli_query

$result =@mysqli_query($query,$con);

您的参数已被颠倒过来。 $con必须先来:

$result = mysqli_query($con, $query) or die(mysqli_error());

如果您对代码添加错误更正感到困扰,那么您已经被告知了这一点。但是不,你选择@隐藏所有这些错误信息。