2013-11-04 176 views
-2

我已经在粘贴在phpMyAdmin查询返回你行的量另一个线程读取,但在我的情况下,它甚至没有在phpMyAdmin返回一个值,它总是0!下面是该查询:为什么mysql_num_rows()返回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的登录,但它不工作!

用户名:布莱恩 密码:阿祖尔

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

您可以发布您的数据库结构与数据?此外,SQL注入..等等等等等等。 –

+0

您的POST值不存在,就这么简单。 var_dump($ _ POST)的输出是什么;'? –

+0

您是否知道您通常无法使用AJAX将值发送到其他域? 'android.neosoftware.org.mx/PHP/login.php'与你的javascript相同吗? –

回答

0

试试此查询。

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


而且这种类型的问题occurre时$_POST变量是空的。所以,仔细检查你的代码。


注:mysql_*功能已被弃用,在mysqli_*功能移动尽快。

+1

这个查询在功能上与OP的查询有什么不同,除了back ticks?这应该如何解决它? –

+0

@Hanky웃Panky你检查了我的整个查询吗?你看不到其他更新? –

+0

不,我看不到任何其他更新。那些额外的引号不是必须的,您的查询将产生与查询相同的结果。插值可以在双引号中正常工作。他们的问题是这些变量不具有价值。 –

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."'"; 

,也是你的条件incorrect.It应该是这样的:

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

它没有工作,任何其他的想法可能是什么?我不明白它有什么问题!查询中的变量是空的,并且我发送了正确的字段,并且jQuery应用程序总是将我发送到“错误信息”对话框! –

+0

您的POST值不存在,就这么简单。 var_dump($ _ POST)的输出是什么;'? –

+0

mysqli调用的语法错误。 http://us3.php.net/mysqli_real_escape_string –