PHP数据查询错误与对象/字符串,现在SQLite3构造

时间:2014-12-09 03:36:09

标签: php sqlite

我有一个网站。

我最近不得不扩展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() { /*...*/ }
}

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

Alzecha commented

  

此外,第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 '_',这需要一些参数