[英]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或其他方式获取数据。 但是最好将预准备的语句与mysqli或PDO结合使用,以获得更高的安全性。
$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_*
函数编写新代码,因为这些函数已被弃用。 我建议使用mysqli
或PDO
扩展。
你需要做类似的事情
while ($r = mysql_fetch_assoc($row))
{
echo $r[0];
}
该代码之后。
让我知道。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.