【问题标题】:The active result for the query contains no fields查询的活动结果不包含任何字段
【发布时间】:2013-07-11 16:53:03
【问题描述】:

我收到以下错误:The active result for the query contains no fields

下面是我的代码

<?php
session_start();
include 'dbconnect_three.php';
include 'dbconnect.php';
include 'dbconnect_two.php';

$uname      = $_SESSION['user'];
$email      = $_SESSION['email'];
$message_id = $_POST['mess_id'];
$maxseq     = $_POST['maxseq'];
$otheruser  = $_POST['otheruser'];

//The part below is the one that does the query to retrieve the messages from the database

$sql_message_retriver         = "SELECT message FROM inbox WHERE message_id='$message_id' ";
$sql_message_retriever_result = sqlsrv_query($conn_three, $sql_message_retriever);


while ($sql_message_result_display = SQLSRV_FETCH_ARRAY($sql_message_retriever_result, SQLSRV_FETCH_ASSOC)) {
    $message_string = $sql_message_result_display['message'];
    echo "<right>$message_string</right>";
}

$seen   = 2;
$maxseq = $maxseq + 1;

echo "<form action=// method=post>";
echo "Messageinput type=text name=update>";
echo "<input type=hidden name=message_id value=$message_id>"; // gotta fix this part
echo "<input type=hidden name=maxseq value=$maxseq>";
echo "<input type=hidden name=otheruser value=$otheruser>";
echo "<input type=hidden name=otheremail value=$otheremail>";
echo "<input type=hidden name=keyes value=$keyes>";
echo "<input type=submit name=submit value=Reply>";
echo "</form>";

print_r(sqlsrv_errors());

?>

我得到的确切错误:

Array (
    [0] => Array (
        [0] => IMSSP
        [SQLSTATE] => IMSSP
        [1] => -28
        [code] => -28
        [2] => The active result for the query contains no fields.
        [message] => The active result for the query contains no fields.
    )
)

这是我从其他论坛找到的解决问题的一个建议:使用sqlsrv_next_result。我用了它,它说 ODBC 函数序列错误(类似的东西)。

当我将我的 sql 语句更改为这样说时,还有一点需要注意:

$sql_id_two="SELECT message 
             FROM   inbox 
             WHERE  message_id = '$message_id' 
                    AND to_email = '$email' 
                     OR from_email = '$email'";

它确实有效并显示了消息。这很奇怪。

谁能解释这个错误信息?

【问题讨论】:

  • Ewwww... 数据库查询中未处理的获取变量...

标签: php database fetch sqlsrv


【解决方案1】:

在我的情况下,using PDO,我不得不调用nextRowset(),因为我试图在select 之前从insert 的结果中读取列。

SQLSRV equivalent 是:

mixed sqlsrv_next_result ( resource $stmt )

【讨论】:

    【解决方案2】:

    我发现出了什么问题,我的 sql 语句出现拼写错误。所以我为 sqlsrv_query 插入了资源 2 的错误拼写。我怎么能这么傻。

    【讨论】:

    • 别担心;它发生在最好的情况下,Microsoft 并不以准确有用的错误消息而闻名。
    猜你喜欢
    • 1970-01-01
    • 2019-12-18
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多