为什么mysql_num_rows()返回0?

时间:2013-11-04 05:33:55

标签: php mysql phpmyadmin

我在另一个线程中读到,在phpMyAdmin中粘贴查询会返回您拥有的行数,但在我的情况下,它甚至不返回phpMyAdmin中的值,它始终为0!这是查询:

$query = "SELECT nom_usu FROM usuarios WHERE nom_usu = '$usu' AND pass = '$pass';";

我打开.php文件并运行查询,它返回空值,如下所示:

SELECT nom_usu FROM usuarios WHERE nom_usu = '' AND pass = '';

我也试图回应那些返回的价值,猜猜是什么?零!

这是完整的.php文件(用于登录):

<?php

    include('dbConfig.php');

    $usu = $_POST["usu"];
    $pass = $_POST["pass"];

    $query = "SELECT nom_usu FROM usuarios WHERE nom_usu = '$usu' AND pass = '$pass';";

    echo $query."\n";

    if($resultado = mysql_query($query)){
      if(mysql_num_rows($resultado) > 0){
         echo mysql_num_rows($resultado);
         echo "Todo est&aacute; bien, no te preocupes :)";
         echo true;
      } else {
         echo mysql_num_rows($resultado);
         echo "Hay algo mal aqu&iacute; :(";
      }
    } else {
     echo false;
    }

?>

dbConfig.php文件:

<?php

$host="localhost";
$user="neosoftw_lambda";
$contra="myPass"; <- This is not actually my password...
$db="neosoftw_lambdaMovil";

$ms = mysql_connect($host, $user, $contra) or die("No se pudo conectar :(");
mysql_select_db($db, $ms) or die ("No hay base de datos :(");   

?>

希望有人可以帮我弄清楚我哪里出错了?

这是我想要的,是jQuery Mobile中的登录,但它不起作用!

用户名:bryan 密码:azul

http://android.neosoftware.org.mx/

修改

也许可能是因为我的javascript?

$.post("http://android.neosoftware.org.mx/PHP/login.php", {usu : usu, pass : pass}, function(respuesta_login){

            if(!($("#txt_usuario").val() || $("#txt_password") == '')){
                $.mobile.changePage("#campos_vacios");
            } else {
                if(respuesta_login == 1){
                    $("#txt_usuario").val('');
                    $("#txt_password").val('');
                    $.mobile.changePage("#pag_principal");
                } else {
                    $.mobile.changePage("#error_login");
                }
            }


        });

2 个答案:

答案 0 :(得分:0)

尝试此查询。

$query = "SELECT `nom_usu` FROM usuarios WHERE `nom_usu` = '".$usu."' AND `pass` = '".$pass."'";

$_POST变量为空时,此类问题也会出现。所以,请仔细检查您的代码。


注意: mysql_*函数已弃用,请尽快继续mysqli_*函数。

答案 1 :(得分:0)

使用mysqliPDO语句,因为mysql已弃用。试试这个:

 $usu = mysqli_real_escape_string($_POST["usu"]);
 $pass = mysqli_real_escape_string($_POST["pass"]);

 $query = "SELECT nom_usu FROM usuarios WHERE nom_usu = '".$usu."' AND pass = '".$pass."'";

而且你的情况也不正确。应该是这样的:

if($resultado == mysqli_query($query)){