我有一个网站。
我最近不得不扩展Sqlite3以使用一些函数并定义一些自定义函数,但我现在有这样的错误消息:
致命错误:带有消息'SQLite3 :: __ construct()的未捕获异常'异常'需要至少1个参数,0给定'第138行
这是第138行:
$output = new functions(); $output-> bothQuery();
我的类扩展了sqlite3:
class functions extends SQLite3 {
// Functions to sort data based on input
public function bothQuery() { /*...*/ }
function nameQuery() { /*...*/ }
function cateQuery() { /*...*/ }
}
我该如何解决这个问题?
答案 0 :(得分:1)
此外,第138行位于上部代码段,其中显示$ output = new functions();
你应该learn from basic php oop tutorials,但这是你面临的问题:
Sqlite3类似乎有一个构造函数。类通常具有构造函数。构造函数有时会使用参数,例如constructor for the Sqlite3 class
当你扩展一个类class functions extends SQLite3
时会发生什么,它将使用它的 parent (即Sqlite3)构造函数,如果它没有在孩子(即函数)类。从我们可以从它的手册页中看到,Sqlite3构造函数需要一个参数(sqlite数据库的文件名)作为它的第一个参数。所以当你这样做时:
$output = new functions();
您实际构建的是 Sqlite3 实例,即使它被称为函数,因为functions extends SQLite3
。所以你必须给它一个正常的参数,就像你在调用new Sqlite3()
答案 1 :(得分:0)
我将在2019年1月31日发布此答案,对于那些只是按照缩略图来到这里的人 我也遇到了同样的问题,最后我找到了解决方案 问题出在您的Construct()方法上,您错过了一个'_'
我们有两个构造方法()
1 .__ construct(),带有两个'_',不需要参数
2._construct(),
with one '_'
,这需要一些参数