Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php pdo mysql fetch返回一般错误?_Php_Mysql_Pdo - Fatal编程技术网

php pdo mysql fetch返回一般错误?

php pdo mysql fetch返回一般错误?,php,mysql,pdo,Php,Mysql,Pdo,尝试执行此操作时: // make unread notifications $db->sqlquery("SELECT `participant_id` FROM `user_conversations_participants` WHERE `conversation_id` = ? AND `participant_id` != ?", array($_POST['conversation_id'], $_SESSION['user_id']));

尝试执行此操作时:

        // make unread notifications
        $db->sqlquery("SELECT `participant_id` FROM `user_conversations_participants` WHERE `conversation_id` = ? AND `participant_id` != ?", array($_POST['conversation_id'], $_SESSION['user_id']));
        while ($participants = $db->fetch())
        {
            $db->sqlquery("UPDATE `user_conversations_participants` SET `unread` = 1 WHERE `participant_id` = ?", array($participants['participant_id']));
        }
我似乎得到了这个错误:

警告:PDOStatement::fetch()[PDOStatement.fetch]:SQLSTATE[HY000]: 一般错误 /home/gamingon/public_html/prxa.info/includes/class_mysql.php在线 68

以下是我的查询和获取函数:

// the main sql query function
public function sqlquery($sql, $objects = array())
{
    global $core;

    try
    {
        $this->STH = $this->database->prepare($sql);

        foreach($objects as $k=>$p)
        {
            // +1 is needed as arrays start at 0 where as ? placeholders start at 1 in PDO
            if(is_numeric($p))
            {
                $this->STH->bindValue($k+1, (int)$p, PDO::PARAM_INT);
            }
            else
            {
                $this->STH->bindValue($k+1, $p, PDO::PARAM_STR);
            }
        }

        $this->counter++;

        return $this->STH->execute();
    }

    catch (Exception $e)
    {
        $core->message($e->getMessage());
    }
}

public function fetch()
{
    $this->STH->setFetchMode(PDO::FETCH_ASSOC); 
    **return $this->STH->fetch();**
}

在循环的第一次迭代期间,覆盖
$db
实例的
STH
属性。换言之:

  • 在执行SELECT查询时,
    $db->STH
    是一条SELECT预处理语句
  • 您可以对SELECT语句执行
    fetch()
    调用,这很有效
  • 第一次循环迭代:使用UPDATE PREADED语句覆盖
    $db->STH
  • 就在第二次循环迭代之前:您不能再执行
    fetch()
    调用,因为SELECT语句已经消失,INSERT语句已经就位

  • 重构数据库类或创建
    $db
    类的新实例(使用不同的变量名!),以便在循环中使用

    在循环的第一次迭代中,覆盖
    $db
    实例的
    STH
    属性。换言之:

  • 在执行SELECT查询时,
    $db->STH
    是一条SELECT预处理语句
  • 您可以对SELECT语句执行
    fetch()
    调用,这很有效
  • 第一次循环迭代:使用UPDATE PREADED语句覆盖
    $db->STH
  • 就在第二次循环迭代之前:您不能再执行
    fetch()
    调用,因为SELECT语句已经消失,INSERT语句已经就位

  • 重构数据库类或创建
    $db
    类的新实例(使用不同的变量名!),以便在循环中使用

    你能突出显示第68行吗?为什么不使用
    更新。。。选择
    ?我突出显示了68个左右两边各有星星的图标;如果您的查询需要MySQL变量,您需要在它们自己的查询中执行它们的初始化(
    SET…
    )。。。选择?我突出显示了68个左右两边各有星星的图标;如果您的查询需要MySQL变量,您需要在它们自己的查询中执行它们的初始化(
    SET…
    )。正是这样,我将其更改为“全部获取”,然后foreach循环它:),谢谢!我希望我能把这个答案投上10票!我在做一件同样愚蠢的事情确实是这样,所以我把它改为全部取,然后foreach循环:),谢谢!我希望我能把这个答案投上10票!我在做一件同样愚蠢的事情D