PHP无法打印mysql_query()结果

时间:2014-05-28 20:49:57

标签: php mysql

我有代码

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

然而,没有任何回应。

这很奇怪,因为正在返回一些东西,因为稍后在代码中我有一个CALLED函数:

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

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

enter image description here

它显然返回1或TRUE。

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

编辑:请不要,常规的mySQL命令返回此,只有这个: enter image description here

编辑:这里有整个数据库: enter image description here

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

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

$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个扩展程序。

答案 2 :(得分:0)

您需要执行类似

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

之后的代码。

让我知道。