php - 简单的 mysql 查询在 phpmyadmin 中有效,但在 php 脚本中无效

标签 php mysql mysqli

我整天都在研究从单个 mysql 数据库中提取数据的 php 脚本。我的脚本运行良好,然后 mysql 突然停止返回包含某些查询的行。它从一个复杂的连接开始,但现在一个特定的查询不会返回一行。粘贴到 phpmyadmin 中的完全相同的查询会返回一行。

首先是查询:

    $sql = "SELECT tagsetsname_id FROM tagsets_docpaths_sets WHERE documents_paths_id = '233'";  //the '233' comes from {$_SESSION['document']['docpathid']}

当我在 phpmyadmin 中粘贴这个查询时,我得到了这个结果:

tagsetsname_id
    0

这就是我想要的结果。 tagsetsname_id 为 0。

当我在 php 脚本中尝试这个时:

    //$db is connection to a database, some queries are working so $db is connected
    $sql = "SELECT tagsetsname_id FROM tagsets_docpaths_sets 
    WHERE documents_paths_id = '233'";
$res = $db->query($sql);

然后查看 Firebug 中的 $res,我得到以下结果:

    mysqli_result(
    current_field =
    field_count =
    lengths =
    num_rows =
    type =
    )

它是空的。我很困惑。

我重新启动了apache;我重新启动了 mysql。

我可能遗漏了什么简单的东西?

我是 mysql 的新手。数据库会以某种方式损坏吗?有没有重建或我可以尝试的东西?

**脚本

    $sql = "SELECT tagsetsname_id FROM tagsets_docpaths_sets \
    WHERE documents_paths_id = '{$_SESSION['document']['docpathid']}'";
    //{$_SESSION['document']['docpathid']} = 233;

    $res = $db->query($sql);
    $row = $res->fetch_row();
    $firephp->trace($db);
    $firephp->group('tags');
    $firephp->log('$sql');
    $firephp->trace($sql);
    $firephp->log('$row');
    $firephp->trace($row);
    $firephp->groupEnd();

**调试

    mysqli(
    affected_rows =
    client_info =
    client_version =
    connect_errno =
    connect_error =
    errno =
    error =
    field_count =
    host_info =
    info =
    insert_id =
    server_info =
    server_version =
    stat =
    sqlstate =
    protocol_version =
    thread_id =
    warning_count =
    )

    SELECT tagsetsname_id FROM tagsets_docpaths_sets WHERE documents_paths_id = '233' 

     $row
    null
    File         Line   Instruction
    .../create_metatags.php

    291

    FirePHP->trace( '')

YET 在 phpmyadmin 中,从调试中粘贴的 $sql 完美运行。我疯了吗?!

最佳答案

如本页所示http://us3.php.net/manual/en/mysqli-result.fetch-row.php , $res->fetch_row() 返回带有数字索引的数组中的结果。您的结果应该在 $row[0] 中。

关于php - 简单的 mysql 查询在 phpmyadmin 中有效,但在 php 脚本中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15148447/

相关文章:

php - php如何在cakephp的扩展名为.ctp的文件中执行?

php - 检查 php 准备语句中是否为空

javascript - 显示正确的 ID

php - 我的 php mysql 无法从数据库检索数据

如果日期不正确,mysql 会插入一个空日期

mysql - 填补月份空白

php - 在 mysqli 中尝试/捕获

php - 如何使用准备好的语句将 boolean 值放入 mysql 数据库中?

php - 运行 example_web_connector.php 时出错

java - 使用 PHP 和 mysql 构建 Android 登录