Объект класса SQLite3Result не может быть преобразован в int - PullRequest
0 голосов
/ 25 августа 2018

Я хотел случайным образом выбрать столбец из таблицы dictonary в файле SQLite3.Но я не знаю, почему это дает мне предупреждение. (Обратите внимание)

Это код, который я пишу: (Часть)

<?php
    class DB extends SQLite3{
        function __construct($path){
            return $this->open($path);
        }
        function randWord(){
            //Randomize select a word from database.
            $words = $this->query("select count(*) from 'dictonary';");
            return $this->query("select * from 'dictonary' limit 1 offset ".mt_rand(0,$words-1).";")->fetchArray()['wholeWord'];
        }
}
$database = new DB('storage.db');
echo json_encode([
    'status'=>200,
    'message'=>'Got an word!',
    'data'=>[
        'word'=>$database->randWord()
    ]
],JSON_PRETTY_PRINT);
$database->close();

И это ответ:

<br />
<b>Notice</b>:  Object of class SQLite3Result could not be converted to int in <b>D:\phpStudy\htdocs\Files\word-match\api.php</b> on line <b>17</b><br />
{
    "status": 200,
    "message": "Got an word!",
    "data": {
        "word": "\u5b66\u795e\u4e4b\u5973"
    }
}

Почему?

1 Ответ

0 голосов
/ 30 января 2019

Все правильно проблема была решена мной. $words это объект, а не число. Я должен использовать этот способ ниже, чтобы получить счет:

$words['count(*)'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...