Rumah > pembangunan bahagian belakang > tutorial php > 通过函数返回引用来对类的属性初始化时,出现错误 "No database selected"

通过函数返回引用来对类的属性初始化时,出现错误 "No database selected"

WBOY
Lepaskan: 2016-06-06 20:38:44
asal
1053 orang telah melayarinya

<code>php</code><code><?php //function.php
function &connectdb()
{
    global $DBname,$DBusername,$DBpassword,$servername;
    $conn=new mysqli($servername, $DBusername, $DBpassword, $DBname);
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
    $conn->query("SET NAMES 'UTF8'");
    return $conn;
}
?>
</code>
Salin selepas log masuk
Salin selepas log masuk
<code>php</code><code><?php /**
*
*/
class Bar
{
    private $conn;
    function __construct()
    {
        require './function.php';
        $this->conn=connectdb();
        $result=$this->conn->query("SELECT * FROM 15_spring_new WHERE 1;");
        var_dump($this->conn->error);
    }
}
$bar = new Bar;
 ?>
</code>
Salin selepas log masuk
Salin selepas log masuk

发现只要在函数中调用,就会出现这个问题。
该错误输出为:"No database selected"
而当我在类外面使用时,程序运行正常。
错误在哪里?

回复内容:

<code>php</code><code><?php //function.php
function &connectdb()
{
    global $DBname,$DBusername,$DBpassword,$servername;
    $conn=new mysqli($servername, $DBusername, $DBpassword, $DBname);
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
    $conn->query("SET NAMES 'UTF8'");
    return $conn;
}
?>
</code>
Salin selepas log masuk
Salin selepas log masuk
<code>php</code><code><?php /**
*
*/
class Bar
{
    private $conn;
    function __construct()
    {
        require './function.php';
        $this->conn=connectdb();
        $result=$this->conn->query("SELECT * FROM 15_spring_new WHERE 1;");
        var_dump($this->conn->error);
    }
}
$bar = new Bar;
 ?>
</code>
Salin selepas log masuk
Salin selepas log masuk

发现只要在函数中调用,就会出现这个问题。
该错误输出为:"No database selected"
而当我在类外面使用时,程序运行正常。
错误在哪里?

Label berkaitan:
php
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan