试图为mysqli连接创建php类并用于查询.

Cev*_*vil 6 php mysql sql mysqli class

所以我正在尝试创建一个可用于连接mysql数据库的类.在尝试使用我的课程之前,不应该先进,这一切都很有趣和游戏.这是我的代码:

班级:

<?php

class createCon  {
    var $host = 'localhost';
    var $user = 'root';
    var $pass = '';
    var $db = 'example';
    var $myconn;

    function connect() {
        $con = mysqli_connect($this->host, $this->user, $this->pass, $this->db);
        if (!$con) {
            die('Could not connect to database!');
        } else {
            $this->myconn = $con;
            echo 'Connection established!';}
        return $this->myconn;
    }

    function close() {
        mysqli_close($myconn);
        echo 'Connection closed!';
    }

}

?>
Run Code Online (Sandbox Code Playgroud)

这是我尝试查询数据库的地方:

<?php

include 'connect.php';

$connection = new createCon();
$connection->connect();

$query = 'SELECT * FROM  `nickname`';
$result = mysqli_query($connection, $query);

if($numrows = mysqli_num_rows($result)) {
        echo $numrows;
    while ($row = mysqli_fetch_assoc($result)) {
        $dbusername = $row['nick'];
        $dbpassword = $row['pass'];
        echo $dbusername;
        echo $dbpassword;
    }}
?>
Run Code Online (Sandbox Code Playgroud)

当我尝试进行查询时出现以下错误:

( ! ) Warning: mysqli_query() expects parameter 1 to be mysqli, object given in C:\wamp\www\uppgift 1 kompletering\test.php on line 13

( ! ) Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:\wamp\www\uppgift 1 kompletering\test.php on line 15
Run Code Online (Sandbox Code Playgroud)

我想我有点理解为什么我会得到错误,但我不知道如何修复它.尝试了一百万件事,没有任何作品.我是OOP和php的新手,会非常喜欢一些建议!

jam*_*rty 10

你想传入$connection->myconn而不是$connection.如:

$result = mysqli_query($connection->myconn, $query);
Run Code Online (Sandbox Code Playgroud)

就目前而言,你传递的是一个类的实例,而不是一个mysqli,这就是错误消息所抱怨的内容.

  • 删除`$`符号= =`$ result = $ mysqli_query($ connection-> myconn,$ query);`它适用于我. (2认同)

San*_*nga 5

在数据库连接类中,您返回连接.在php类中,你必须捕获该连接变量

$connection = new createCon();
$conn = connection->connect();
Run Code Online (Sandbox Code Playgroud)

您可以将该$conn变量用作mysqli_query()参数

$result = mysqli_query($conn, $query);

这对我有用.