PHP:MySQLi连接在方法中可用
我必须更改什么才能将$con传输到类内的方法 它应该是“公开的”或者别的什么PHP:MySQLi连接在方法中可用,php,oop,mysqli,Php,Oop,Mysqli,我必须更改什么才能将$con传输到类内的方法 它应该是“公开的”或者别的什么 class MyClass { public function __construct() { $con=mysqli_connect("localhost", "dbu...", "pw") or die("Error"); mysqli_select_db($con, "db100...") or die("Error"); } public function doSomething() {
class MyClass {
public function __construct()
{
$con=mysqli_connect("localhost", "dbu...", "pw") or die("Error");
mysqli_select_db($con, "db100...") or die("Error");
}
public function doSomething()
{
mysqli_query($con, "");
}
}
谢谢
PS:我不想要$this->db->query()或其他什么:)如果你想坚持mysqli的过程版本,在面向对象的类中,你仍然需要使用
$this
,但有点不同:
class MyClass {
private $con;
public function __construct()
{
$this->con = mysqli_connect("localhost", "dbu...", "pw") or die("Error");
mysqli_select_db($this->con, "db100...") or die("Error");
}
public function doSomething()
{
mysqli_query($this->con, "");
}
}
但是,理想情况下,如果您坚持使用对象表示法,您应该一直这样做:
class MyClass {
private $con;
public function __construct()
{
$this->con = new mysqli("localhost", "dbu...", "pw") or die("Error");
$this->con->select_db("db100...") or die("Error");
}
public function doSomething()
{
$this->con->query("");
}
}
你可以这样做:
class MyClass {
public $con
public function __construct()
{
$this->con=mysqli_connect("localhost", "dbu...", "pw") or die("Error");
mysqli_select_db($this->con, "db100...") or die("Error");
}
public function doSomething()
{
mysqli_query($this->con, "");
}
}
。。。或者像这样:
global $con;
class MyClass {
public function __construct()
{
global $con;
$con=mysqli_connect("localhost", "dbu...", "pw") or die("Error");
mysqli_select_db($con, "db100...") or die("Error");
}
public function doSomething()
{
global $con;
mysqli_query($con, "");
}
}
建议使用第一个选项,因为第二个选项可能会导致名称空间冲突
PS:我不想要$this->db->query()或其他东西
…那么,不要将方法放在类中<如果要访问类本身的方法或属性,则需要code>$this。您不希望将连接作为类的属性的理由是什么,即$this->con
?