0
 <?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";
   }
   }            
?>

我一直无效。当我写没有变量的表名时,它可以工作......

4

4 回答 4

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

$tablename不需要单引号。

此外,您可以这样做:

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

每次查询后查看mysql错误。

于 2013-04-12T09:26:51.403 回答
3

如果你想转义你的表名,使用 `$tablename` 而不是 '$tablename'

于 2013-04-12T09:31:08.040 回答
0

尝试一下。

 $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";
        }
    }
于 2013-04-12T09:31:04.303 回答
0

对表名使用反引号,而不是单引号

此外,您应该尝试从查询中获取更多错误信息。

$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();
}
于 2013-04-12T09:31:26.297 回答