• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Database connection in static method

#1
In CI4, how would you create a static variable holding the $db connection to use inside of static methods? Everything I have tried either brings it only as a non-static var or doesn't seem to work. I even tried Manual Model Creation but was unable to get that to work either.

Thanks[url=https://codeigniter.com/user_guide/models/model.html#id22][/url]
Reply

#2
So far the best solution I could find is: https://stackoverflow.com/questions/3312...81#3312881


PHP Code:
// file Foo.php
class Foo
{
  protected static $db;
  static function init() { if(empty(self::$db)) self::$db =  db_connect(); }
}

Foo::init(); 

Basically if the file is called it will call init and init will setup the static database and if it's called again it will just skip that setup line. Now I can access self::db from within my classes static methods. I found out constructors don't get called when accessing a method statically which is why a bunch of my previous "tests" we not working including following Manual Model Creation steps. If there is a better way to handle this let me know but this seems to work for now. Now I can use "self::$db" inside a static method.
Reply


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2020 MyBB Group.