【问题标题】:Select query for getting a single value is not working用于获取单个值的选择查询不起作用
【发布时间】:2018-08-29 01:55:27
【问题描述】:
 $sql = "SELECT temail FROM teacherusers WHERE tfullname='$teachername' limit 1";
 $result = mysql_query($sql);
 $value = mysql_fetch_object($result);
 $teacheremail2 = $value->temail;
 echo $teacheremail2;

echo $teacheremail2 不返回任何内容。

$teachername 有效,我已检查多次。

【问题讨论】:

  • 不是答案,但是使用 LIMIT 而不使用 ORDER BY 是相当没有意义的,因为对于您想要返回的 which 单个记录没有正式的逻辑/推理。添加一个ORDER BY 子句以使查询有意义。
  • 你的php版本是多少,是否开启了显示错误?
  • 如何启用显示错误?
  • PHP 的错误报告php.net/manual/en/function.error-reporting.phpmysql_error() 是供您使用的两个错误检查工具。然后,您可以更新您的问题以包含这些错误(如果有)。

标签: php mysql sql


【解决方案1】:

应该是二维数组,你需要 $value[0]->temail

【讨论】:

  • 相当肯定 mysql_fetch_object 返回一个对象。
  • 抱歉没有结果
【解决方案2】:

mysql_fetch_object($result) 的结果是一个对象(stdClass)。

object(stdClass)的解释可以在这个link找到

$sql = "SELECT temail FROM teacherusers WHERE tfullname='$teachername' limit 1";
$result = mysql_query($sql);
while ($value = mysql_fetch_object($result))
    {
    $teacheremail2 = $value->temail;
    echo $teacheremail2;
    }

【讨论】:

  • mickmackusa 怎么样?
【解决方案3】:

首先,您需要直接针对您的数据库运行查询,以确保查询返回某种结果。 其次,如果可行,您需要直接回显 $value 以检查您是否在网页上获得了返回结果。

然后你可以检查temail是否是$value的字段

【讨论】:

  • 我跑了 SELECT temail FROM teacherusers WHERE tfullname = "XXX XXX" 我在 phpmyadmin 中得到了结果
  • 好。那么继续第二步
  • 回显 $value;什么也没显示。 temail 是表的列名,仔细检查
  • 尝试使用 var_dump php.net/manual/en/function.var-dump.php 另外,请确保您已为 $teachername 设置了初始值
【解决方案4】:
$sql = "SELECT temail FROM teacherusers WHERE tfullname='$teachername' limit 1";
 $result = mysql_query($sql);
while ($value = mysql_fetch_object($result))
    {
    $teacheremail2 = $value->temail;
    echo $teacheremail2;
    }

希望有帮助

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-09
相关资源
最近更新 更多