我想从SQLite3文件的表dictonary
中随机选择一列。但是我不知道为什么会给我警告。(注意)
这是我写的代码:(部分)
<?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"
}
}
为什么?
答案 0 :(得分:0)
所有问题都由我自己解决了。
$words
是一个对象,而不是数字。
我应该在下面使用这种方式获取计数:
$words['count(*)'];