Php 无法从SQL查询中获取预期结果
这是我的桌子Php 无法从SQL查询中获取预期结果,php,mysql,sql,Php,Mysql,Sql,这是我的桌子 Field Type Null Key Default Extra id_key int(11) NO PRI NULL auto_increment tbl_users_username varchar(255) YES UNI NULL tbl_users_password varchar
Field Type Null Key Default Extra
id_key int(11) NO PRI NULL auto_increment
tbl_users_username varchar(255) YES UNI NULL
tbl_users_password varchar(32) YES NULL
tbl_users_identifier varchar(32) YES NULL
tbl_users_token varchar(32) YES NULL
tbl_users_access_type int(1) YES NULL
tbl_users_timeout int(10) YES NULL
这是我的密码
$query = "SELECT * FROM tbl_users where tbl_users_username = '$_POST[email_address]'" ;
$result = mysql_query($query);
if($result)
{
echo "TRUE";
}
else
{
echo "FALSE";
}
连接到数据库时没有问题。当我运行查询时,问题出现了。无论电子邮件是否在表中,它都会返回$result。我错过了什么?如果电子邮件地址存在于表中,则应回显true;如果电子邮件地址不在表中,则应回显false。
$\u POST[email\u address]
应使用单引号或双引号,我想:
$\u POST[“电子邮件地址”]
或$\u POST[“电子邮件地址”]
$query = "SELECT * FROM tbl_users where tbl_users_username = '" . $_POST['email_address'] . "'" ;
但是,正如@Fabiocata所说,您必须获取结果或计算返回的行数,以实现您的目标:
$query = "SELECT 1 FROM tbl_users where tbl_users_username = '" . $_POST['email_address'] . "'";
$result = mysql_query($query);
if(mysql_num_rows($result) === 1) {
echo "TRUE";
} else {
echo "FALSE";
}
$\u POST[电子邮件地址]
应该使用单引号或双引号,我想:
$\u POST[“电子邮件地址”]
或$\u POST[“电子邮件地址”]
$query = "SELECT * FROM tbl_users where tbl_users_username = '" . $_POST['email_address'] . "'" ;
但是,正如@Fabiocata所说,您必须获取结果或计算返回的行数,以实现您的目标:
$query = "SELECT 1 FROM tbl_users where tbl_users_username = '" . $_POST['email_address'] . "'";
$result = mysql_query($query);
if(mysql_num_rows($result) === 1) {
echo "TRUE";
} else {
echo "FALSE";
}
下面的查询将根据“已发布的电子邮件地址”值中的值选择tbl_users_username值。因此,请使用以下查询:
$query =
"SELECT * FROM tbl_users where tbl_users_username = '".$_POST['email_address']."';";
下面的查询将根据“已发布的电子邮件地址”值中的值选择tbl_users_username值。因此,请使用以下查询:
$query =
"SELECT * FROM tbl_users where tbl_users_username = '".$_POST['email_address']."';";
结果将被返回(如果您进行了有效的查询)用于检查邮件是否存在。
如果可以,请实际使用PDO。结果将返回(如果您进行了有效的查询),但请使用检查邮件是否存在。
如果可以,请实际使用PDO如果使用PHP的
mysql_num_rows
函数,您应该能够返回行数,并且您的逻辑将正常工作。因此,请尝试以下方法:
$num = mysql_num_rows($result);
if ($num > 0) {
echo "TRUE";
}else{
echo "FALSE";
}
如果您使用PHP的
mysql\u num\u rows
函数,您应该能够返回行数,并且您的逻辑将正常工作。因此,请尝试以下方法:
$num = mysql_num_rows($result);
if ($num > 0) {
echo "TRUE";
}else{
echo "FALSE";
}
我建议你打印出你的查询,以确定它是100%的查询,你期望它 除此之外,您还要检查:
$result=mysql\u query($query)
如果($结果)
这将检查是否从查询中返回了资源。如果您的查询有效,那么根据,您应该始终拥有一个资源
建议代码:
$result=mysql\u query($query)
代码说明:
简要介绍PDO的优势:
堆栈溢出使用提示:
我建议你打印出你的查询,以确定它是100%的查询,你期望它 除此之外,您还要检查:
$result=mysql\u query($query)
如果($结果)
这将检查是否从查询中返回了资源。如果您的查询有效,那么根据,您应该始终拥有一个资源
建议代码:
$result=mysql\u query($query)
代码说明:
简要介绍PDO的优势:
堆栈溢出使用提示:
这应该可以解决您遇到的任何问题,或者至少给您一条方便的错误消息来解决。您是否尝试打印$query以确保它包含您认为它包含的内容?@andrewsi是正确的。首先打印出查询,以查看您是否正确构建了它。正如塞巴斯在回答中所说,你似乎需要将你的帖子连接起来myemail@email.com$query=从tbl\U用户中选择*,其中tbl\U用户\U用户名=myemail@email.com'Change
$result=mysql\u query($query)
to$result=mysql\u query($query)或die(mysql\u error())
并告诉我们它说了什么。@WilliamMichaelVondran-请接受下面任何一个你认为可以接受的答案。这将帮助其他遇到您问题的SO用户。您是否尝试打印$query以确保它包含您认为它包含的内容?@andrewsi是正确的。首先打印出查询,以查看您是否正确构建了它。看来你需要