PHP代码有什么问题?(mysql查询)


whats is wrong with the php code?(mysql query)

 <?php 
   include"config.php";
   session_start();
   $kind = $_GET['kind'];
   $errormsg = '';
   if($kind == user)
    {  $tablename = "appusers"; }
    else
    { $tablename = "developers"; }
   if(isset($_POST['setemail'])){
   $setemail = $_POST['setemail'];
   $sql = mysql_query("SELECT * FROM '$tablename' WHERE email = '$setemail'");
   if(mysql_num_rows($sql) > 0)
   {
       $errormsg = "good";
   }
   else
   {
       $errormsg = "not valid";
   }
   }            
?>

总是无效的。

SELECT * FROM $tablename WHERE email = '$setemail'

$tablename不需要单引号

也可以这样做:

if(mysql_errno()){
     echo mysql_error();
     exit;
}

每次查询后查看mysql错误

如果要转义表名,请使用'$tablename'代替'$tablename'

试一试

 $tablename = "developers";
    $errormsg = '';
    if(!empty($_GET['kind']) && $_GET['kind'] == "user") 
    { 
        $tablename = "appusers"; 
    } 

   if(isset($_POST['setemail'])){
   $setemail = $_POST['setemail'];
   $sql = mysql_query("SELECT * FROM $tablename WHERE email = '$setemail'");
   if(mysql_num_rows($sql) > 0)
     {
     $errormsg = "good";
      }
        else
        {
          $errormsg = "not valid";
        }
    }

表名使用反引号,不能使用单引号

同时,你应该尝试从你的查询中获得更多的错误信息。

$sql = mysql_query("SELECT * FROM `$tablename` WHERE email = '$setemail'");
if(mysql_num_rows($sql) > 0)
{
    $errormsg = "good";
}
else
{
    if ($sql)
        $errormsg = "not valid";
    else
        $errormsg = mysql_error();
}