繁体   English   中英

PHP无法打印mysql_query()结果

[英]PHP unable to print mysql_query() result

我有代码

$email = "jb@tlb.com";    
$row = mysql_query("SELECT EXISTS(SELECT email FROM accounts WHERE email='".$email."');");
echo $row[0];

但是,没有任何回应。

这很奇怪,因为正在返回某些内容,因为在代码的后面,我有一个被调用的函数:

if ( $row[0] == 0 ) { echo "Email address is available<br>";};

但是:这很奇怪,因为当我将SAME CODE放入mySQL数据库命令提示符时:

在此处输入图片说明

它显然返回1或TRUE。

当mysql命令提示符中的相同精确命令返回1时,mysql_query返回0。此外:我无法回显结果以进行调试。

编辑:请不要,常规的mySQL命令将返回此并且仅此: 在此处输入图片说明

编辑:这里有整个数据库: 在此处输入图片说明

MySQL查询为您提供了资源。 之后,您必须使用mysql_fetch_assoc或mysql_fetch_row或其他方式获取数据。 但是最好将准备的语句与mysqliPDO结合使用,以获得更高的安全性。

$email = "jb@tlb.com";    
$res = mysql_query("SELECT EXISTS(SELECT email FROM accounts WHERE email='".myql_real_escape_string($email)."')");
$row = mysql_fetch_assoc($res);
echo $row['email'];

回答您的问题:

$email = "jb@tlb.com";    
$res = mysql_query("SELECT email FROM accounts WHERE email='".mysql_real_escape_string($email)."')");
$numRows = mysql_num_rows($res);

if($rowRows > 0) {
    echo "Record Available";
}

您实际上需要从查询中检索结果集。 mysql_query()仅返回成功选择的资源句柄。 然后,您需要使用mysql_fetch_*函数类来获取结果。 另外,您可以使用mysql_num_rows()确定结果集中返回的行数。

在这种情况下,将实际查询包装到子查询中实际上是没有意义的。 只需运行您的select并确定行数:

$email = "jb@tlb.com";    
$result = mysql_query("SELECT email FROM accounts WHERE email='".$email . "'");
if($result) {
    $row_count = mysql_num_rows($result);
    echo $row_count;
}

另外,您不应该使用mysql_*函数编写新代码,因为这些函数已被弃用。 我建议使用mysqliPDO扩展。

你需要做类似的事情

while ($r = mysql_fetch_assoc($row)) 
{ 
    echo $r[0];                                 
}

该代码之后。

让我知道。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM