2012-04-23 45 views
0

我正在使用JQuery验证插件。我得到了远程函数与默认的PHP文件。JQuery验证远程和检查数据库PHP MySQL错误

我修改了PHP文件用我自己的版本,但MySQL是返回

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/fastbluf/syatch/module/1.func.php on line 15 

我的PHP代码如下。我的所有语法看起来都正确

<?php 
// Last Edited: 4/23/12 
$conn = mysql_connect('localhost','hidden','hidden') or die('Iam dying'); 
$rs = @mysql_select_db("hidden", $conn) or die("Err:Db"); 

$do = $_REQUEST['do']; 
$email= $_REQUEST['email']; 
$user= $_REQUEST['user']; 

function checkInfo($do,$email,$user){ 
    switch ($do) { 
     case 1: 
      $sql = "select * from User_Base where Email_Address = $email"; 
      $results = mysql_query($sql). mysql_error(); 
      $nResults = mysql_num_rows($results); 
      if ($nResults > 0) { 
       $valid="false"; 
      } else { 
       $valid="true"; 
      } 
     break; 

     case 2: 
     //not yet 
     break;  
    } 
    return $valid; 
} 
echo checkInfo($do,$email,$user); 
?> 

回答

2

的问题是,你要追加到你的结果,使其不再是一个有效的结果。

$results = mysql_query($sql). mysql_error(); 

尝试改变这是这样的:

$results = mysql_query($sql) or die(mysql_error()); 

您的查询也应该改变引用的电子邮件地址,地址应该逃出来防止攻击(SQL注入):

$email = mysql_real_escape_string($_REQUEST['email']); 
$sql = "select * from User_Base where Email_Address = '$email'"; 
+0

谢谢。很多..甚至没有跟踪真正的逃生字符串..病必须实现,无处不在现在.. – Ray 2012-04-23 19:09:27

+0

没问题,很高兴我可以帮助:) – Developer 2012-04-23 19:09:55

2

修复您的查询

$sql = "select * from User_Base where Email_Address = '".$email."'";