php代码有什么问题?(mysql查询)
php代码有什么问题?(mysql查询),php,mysql,Php,Mysql,$tablename不需要单引号 此外,您可以这样做: SELECT * FROM $tablename WHERE email = '$setemail' 在每次查询后查看mysql错误。试试 if(mysql_errno()){ echo mysql_error(); exit; } 如果要转义表名,请使用“$tablename”而不是“$tablename”对表名使用反引号,而不是单引号 此外,您应该尝试从查询中获取更多错误信息 $tablename = "dev
$tablename
不需要单引号
此外,您可以这样做:
SELECT * FROM $tablename WHERE email = '$setemail'
在每次查询后查看mysql错误。试试
if(mysql_errno()){
echo mysql_error();
exit;
}
如果要转义表名,请使用“$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";
}
}
使用:
mysql\u查询(“选择…”)或die(mysql\u错误())
如果您遇到问题,它将为您提供一些信息。您确定您的数据库中是否有一行电子邮件值为exaclty,如$\u POST['setemail']
?最后一件事:别忘了对POST变量进行安全化:-)如果($kind==user)
是否将user
定义为常量?。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果你选择PDO,。你也可以通过$setemail=mysql\u real\u escape\u字符串($\u POST['setemail'])来保护自己一点看到这样一个错误的答案被如此高估,真是可惜。回传mysql错误是一种安全漏洞,向潜在攻击者泄露了大量敏感信息。Mysql错误必须转换成PHP错误。我认为在这里打印Mysql错误只是为了调试…是的,是的。它也有助于处理此类错误。
$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();
}