【问题标题】:PHP OOP connectionPHP OOP 连接
【发布时间】:2014-11-01 00:34:24
【问题描述】:

大家好,大家都在尝试创建小型 MVC 类型的应用程序。目前正在研究数据库类。

每次我调用函数时,我都会连接到数据库,但是连接失败并且能够将 $con 变量发送到其他函数以执行任何操作。

class DB {

function __construct() {

 $con = mysqli_connect("localhost","c3337015","c3337015");

 if (mysqli_connect_errno())
  {
  return false;

  }else{

  return $con;
 }

 }



function getAll(){

if(isset($con)){

echo "Connection Successful";
echo "Do MYSQLI stuff   $con = new mysqli etc etc etc";

}else{
echo "Connection Failed";
echo "Leave me alone";
}
}
}

echo $get = DB::getAll();

【问题讨论】:

  • $db = new DB(); $get = $db->getAll(); 呢?你永远不会实例化对象......相反,你将 getAll() 作为静态方法调用,这是错误的
  • 您可能可以采用this 方法,但是.. emm .. 您的问题到底是什么?

标签: php oop mysqli


【解决方案1】:

首先。看看什么是 SINGLETON(它是数据库连接的理想选择)。 用连接声明变量并写单例:) 单例示例:

final class Singleton
{
    /**
     * class instance
     *
     * @var object
     * @access private
     */
    private static $oInstance = false;
    private $_db;

    /**
     * get instance
     *
     * @return Singleton
     * @access public
     * @static
     */
    public static function getInstance()
    {
        if( self::$oInstance == false )
        {
            self::$oInstance = new Singleton();
        }
        return self::$oInstance;
    }

    private function __construct() {}
}

因此,声明您的连接,声明将允许您获得连接并完成所有操作的方法

【讨论】:

  • it is ideal thing for DB connection - 不,这不是理想。这取决于应用程序
  • -1:您是否知道单例是一种反模式并且从不有充分的理由使用它?
  • @MarcinOrlowski ,不,它不依赖于应用程序。这完全是错误的总是
  • 我打赌我会更快地捍卫“取决于应用程序”而不是“理想”或“总是错误”
  • 它是漂亮(相当丑陋)连衣裙中的全局变量。为什么要捍卫它?
猜你喜欢
  • 1970-01-01
  • 2014-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多