【问题标题】:Select specific column from specific row using old mysql_* API使用旧的 mysql_* API 从特定行中选择特定列
【发布时间】:2011-11-04 01:26:38
【问题描述】:

我的 SQL 数据库中有一个表,该表有两个字段,一个用于 id,另一个用于整数。我想获取整数字段中的值,其中 id 等于我传入的特定数字。id 字段称为“id”,整数字段称为“loglevel”。这是我得到的代码,但它没有给我想要的结果。

$result = mysql_query("SELECT loglevel FROM Logs WHERE id='$number'");
echo "Pulled from SQL: " . $result;

这个的输出是

Pulled from SQL: Resource id #2

如果 SQL 表中的值为 2,您能帮我输出为“2”吗?

【问题讨论】:

    标签: php mysql select


    【解决方案1】:

    您需要使用mysql_fetch_assoc()mysql_fetch_array()(或其他)获取结果。 mysql_query() 返回的 $result 是结果资源,而不是实际的行集:

    $result = mysql_query("SELECT loglevel FROM Logs WHERE id='$number'");
    
    // If the query completed without errors, fetch a result
    if ($result) {
      $row = mysql_fetch_assoc($result);
      echo $row['loglevel'];
    }
    // Otherwise display the error
    else echo "An error occurred: " . mysql_error();
    

    如果您希望返回多行而不是仅返回一行,请在 while 循环中获取它们。 mysql_fetch_assoc() documentation 中有很多这样的例子。

    【讨论】:

      【解决方案2】:

      $result = mysql_query("SELECT loglevel FROM Logs WHERE id='$number'");

      这里的 $result 是一个记录集/mysql 资源而不是 php 数组。您需要使用 mysql_fetch_assoc() 或 mysql_fetch_array() 来访问 $result。

      if ($result) {
        while( $row = mysql_fetch_assoc($result)){
          $my_assoc[] = $row;
        }
      }
      var_dump($my_assoc);
      

      这将打印查询中的所有数据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多