【问题标题】:What does Resource ID #114 on an PHP MySQL query mean? [duplicate]PHP MySQL 查询中的资源 ID #114 是什么意思? [复制]
【发布时间】:2013-08-11 20:34:56
【问题描述】:

我有以下代码

 mysql_select_db('example_db', $r);
 $result1 = mysql_query('SELECT content FROM `example_table` WHERE 1') or die ('"bad times an error!"' . mysql_error() . '');
 echo $result1;

返回“资源 ID #114”。这是什么意思?我试图提取的信息是存储在数据库中的 base64 和 json 编码的 twitter 提要。我尝试添加 base64 和 json 解码,但收到一个错误,指出它是资源而不是字符串,所以我认为它正在尝试解析“资源 ID #114”而不是实际提要本身。

感谢任何帮助!

【问题讨论】:

  • 这意味着您的查询有效。你不直接使用资源
  • 天啊!我不敢相信我忽略了这一点。谢谢。

标签: php mysql


【解决方案1】:

再看一下文档:mysql_query 将返回一个资源对象。您必须使用它来提取数据。 mysql_fetch_arraymysql_fetch_assoc 将为您提供帮助。

注意

你不应该再使用 mysql_* - 函数了。它们已被弃用,>= php 5.5 将不再支持它们。你应该切换到mysqli_*PDO

【讨论】:

    【解决方案2】:

    Resources 是 php 中的自定义变量,类似于(但不同)Streams。您可以先阅读文档:

    资源是一个特殊的变量,持有对外部的引用 资源。资源由特殊功能创建和使用。见 附录列出了所有这些功能和相应的 资源类型。

    第二个问题是您正在使用 mysql_query() 之类的已弃用和古老的方法。这真是太糟了。与 db 交互时,您应该使用其他(更现代的)接口(如 PDO 或 mysqli)。

    在您的示例中,$result1 是一种资源,您不能这样打印它。您必须对其进行迭代:

    while ($row = mysql_fetch_assoc($result1)) {
        echo $row['columnName'];
    }
    

    【讨论】:

      猜你喜欢
      • 2012-03-17
      • 2011-05-31
      • 2011-05-29
      • 2011-01-17
      • 2013-09-26
      • 1970-01-01
      • 1970-01-01
      • 2011-08-10
      相关资源
      最近更新 更多