小编nic*_*les的帖子

致命错误:在非对象上调用成员函数fetch_assoc()

我正在尝试执行一些查询以获取有关某些图像的信息页面.我写了一个函数

function get_recent_highs($view_deleted_images=false)
{
    $lower = $this->database->conn->real_escape_string($this->page_size * ($this->page_number - 1));
    $query = "SELECT image_id, date_uploaded FROM `images` ORDER BY ((SELECT SUM( image_id=`images`.image_id ) FROM `image_votes` AS score) / (SELECT DATEDIFF( NOW( ) , date_uploaded ) AS diff)) DESC LIMIT " . $this->page_size . " OFFSET $lower"; //move to database class
    $result = $this->database->query($query);
    $page = array();
    while($row = $result->fetch_assoc())
    {
        try
        {
            array_push($page, new Image($row['image_id'], $view_deleted_images));
        }
        catch(ImageNotFoundException $e)
        {
            throw $e;
        }
    }
    return $page;
}
Run Code Online (Sandbox Code Playgroud)

根据其受欢迎程度选择这些图像的页面.我编写了一个Database …

php mysqli

30
推荐指数
2
解决办法
15万
查看次数

获得两个子查询的计数之间的差异

我试图通过运行SELECT (SELECT COUNT(vote_id) AS vote_up FROM投票WHERE vote='UP'),(SELECT COUNT(vote_id) AS vote_down FROM投票来找出它在MYSQL中收到的upvotes和downvotes的数量之间的差异来确定一个条目的得分WHERE vote='DOWN'),(vote_up - vote_down AS vote_score).当我尝试运行它时,它告诉我,我没有正确的语法.我究竟做错了什么?

还有,有更好的方法来写这个吗?

最后,找到票数最高和最低的项目的理想方法是什么?我会ORDER BY [above query]吗?

mysql

7
推荐指数
2
解决办法
2970
查看次数

有没有办法访问传递给 asyncio.as_completed 的原始任务?

我正在尝试从异步队列中提取任务,并在发生异常时调用给定的错误处理程序。排队项目以字典形式给出(由 排队enqueue_task),其中包含任务、可能的错误处理程序以及错误处理程序可能需要的任何 args/kwargs。由于我想在任务完成时处理任何错误,因此我将每个任务映射到出队字典,并在发生异常时尝试访问它。

async def _check_tasks(self):
    try:
        while self._check_tasks_task or not self._check_task_queue.empty():
            tasks = []
            details = {}
            try:
                while len(tasks) < self._CHECK_TASKS_MAX_COUNT:
                    detail = self._check_task_queue.get_nowait()
                    task = detail['task']
                    tasks.append(task)
                    details[task] = detail
            except asyncio.QueueEmpty:
                pass

            if tasks:
                for task in asyncio.as_completed(tasks):
                    try:
                        await task
                    except Exception as e:
                        logger.exception('')
                        detail = details[task]
                        error_handler = detail.get('error_handler')
                        error_handler_args = detail.get('error_handler_args', [])
                        error_handler_kwargs = detail.get('error_handler_kwargs', {})

                        if error_handler:
                            logger.info('calling error handler')
                            if inspect.iscoroutinefunction(error_handler):
                                self.enqueue_task(
                                    task=error_handler(
                                        e,
                                        *error_handler_args,
                                        **error_handler_kwargs
                                    )
                                ) …
Run Code Online (Sandbox Code Playgroud)

python python-asyncio

7
推荐指数
1
解决办法
1307
查看次数

将二进制字符串转换为float

我有一个对象,我存储位.

class Bitset:
    def __init__(self, bitstring):
        self.bitlist = []
        for char in bitstring:
            self.bitlist.append(int(char))

    def flipBit(self, index):
        val = self.bitlist[index]
        val = (val + 1) % 2
        self.bitlist[index] = val
        self.newBitstring()

    def bitstring(self):
        newString = ''
        for val in self.bitlist:
            newString = newString + str(val)
        return newString

    def __len__(self):
        return len(self.bitlist)

    def __str__(self):
        return self.bitstring()

    def __repr__(self):
        return self.bitstring()
Run Code Online (Sandbox Code Playgroud)

无论如何我可以将这些位转换为浮点数吗?谢谢.

python

4
推荐指数
2
解决办法
3966
查看次数

标签 统计

python ×2

mysql ×1

mysqli ×1

php ×1

python-asyncio ×1