Maison > développement back-end > tutoriel php > 通过函数返回引用来对类的属性初始化时,出现错误 "No database selected"

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

WBOY
Libérer: 2016-06-06 20:38:44
original
1052 Les gens l'ont consulté

<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>
Copier après la connexion
Copier après la connexion
<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>
Copier après la connexion
Copier après la connexion

发现只要在函数中调用,就会出现这个问题。
该错误输出为:"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>
Copier après la connexion
Copier après la connexion
<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>
Copier après la connexion
Copier après la connexion

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

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal