Php 在mysqli函数中使用公共静态函数
我正在创建一个使用公共静态函数连接到数据库的站点。 由于它是通过类名调用的,我不明白如何执行Php 在mysqli函数中使用公共静态函数,php,mysqli,static,static-methods,Php,Mysqli,Static,Static Methods,我正在创建一个使用公共静态函数连接到数据库的站点。 由于它是通过类名调用的,我不明白如何执行mysqli\u query()。代码如下: db.class.php <?php class connect { private static $db_host='localhost'; private static $db_user='root'; private static $db_pass=''; private static $db_name='i_
mysqli\u query()
。代码如下:
db.class.php
<?php
class connect
{
private static $db_host='localhost';
private static $db_user='root';
private static $db_pass='';
private static $db_name='i_constuddoer01';
//using public static function to avoid overloading
public static function cxn_mysqli() {
$result=mysqli_connect(self::$db_host,self::$db_user,self::$db_pass,self::$db_name);
if(!$result)
header("Location: sorry.php");
else
return $result;
}
}
}
<?php
require_once('db.class.php');
function addUser($fname,$lname,$email,$pass) {
$query="INSERT INTO users VALUES(...)";
$qr_status = mysqli_query(connect::cxn_mysqli(),$query)
}
我认为您要做的是创建一个singleton类,下面是一个示例
class Connect
{
private static $instance;
# make the construct private to avoid anyone using new Connect()
private function __construct()
{
# Sql connect code in here
}
static public function i()
{
if(!is_object(self::$instance)) {
return new self;
}
return self::$instance;
}
}
# Lets try to create two instances
$i = Connect::i();
$j = Connect::i();
# Oh look they are exactly the same object
echo spl_object_hash($i)."\n";
echo spl_object_hash($j)."\n";
希望对您有所帮助您是否只想使用现有的connect类?或者你正在编写这个类,你想得到反馈吗?既然mysqli默认有持久连接,为什么我们要为mysqli使用单例呢?