php - 尝试使用 php 中的类从 mySQL 显示

标签 php mysql

我正在开始 php/MySql,并被要求使用一个类来访问我的数据库。当我将所有代码都放在一个文件中时,我可以让显示正常工作,但是当我尝试从另一个文件调用该类时,我什么也得不到。

这是有效的:

<?php

$host = 'localhost';
$username = 'root';
$password = '';
$dbname = 'testdb';

$myNewConnection = mysqli_connect($host,$username,$password,$dbname);
$query = "SELECT user_name FROM users" or die ("Error..." . mysqli_error($myNewConnection));

// execute the query
$result = $myNewConnection->query($query);

// display output
while($row = mysqli_fetch_array($result)) {
    echo $row["user_name"] . "<br>";
}

?>

这是我调用该类的代码:

<?php
include("users.php");

$host = 'localhost';
$username = 'root';
$password = '';
$dbname = 'testdb';

//initiate the class
$myDB = new MyDB('localhost', 'root', '', 'testdb'); 
//$myDB = new MyDB($host,$username,$password,$dbname); 
?>

这是我的课:

<?php

class MyDB {

    public $query;
    public $myConnection;

    public function _construct($host,$username,$password,$dbname){

        // establish the connection
        $this->myConnection = mysqli_connect($host,$username,$password,$dbname);
    }
    public function list_users() {

        // create query to list all users
        $this->query = "SELECT user_name FROM users" or die ("Error..." . mysqli_error($this->$myNewConnection));

        // execute the query
        $result = $this->$myConnection->query($this->$query);

        // display output
        while($row = mysqli_fetch_array($result)) {
            echo $row["user_name"] . "<br>";
        }
    }

}

?>

感谢任何帮助

最佳答案

如下更改此行(从 querymyConnection 中删除美元符号):

$result = $this->myConnection->query($this->query);

另外您可能需要使用下面的代码调用您的 list_users 函数(在实例化您的类之后!将您定义的变量而不是它们的实际值传递给构造函数):

$myDB = new MyDB($host,$username,$password,$dbname);
$myDB->list_users();

构造函数也用两个下划线编写,如下所示:

public function __construct

关于php - 尝试使用 php 中的类从 mySQL 显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30684568/

相关文章:

php - mysql 获取最近 10 秒内添加的记录?

php - 搜索加拿大省份

php mysql 将多个相同的查询合并为一个

mysql - LEFT 在学说查询生成器中加入两个表

Php/sql update 仅在 cookie 是数字时有效,而不是文本时有效

mysql - 无法在 mysql-workbench 中添加外键约束

java - ManyToMany Hibernate保存相关对象

php - 为什么 PHP 解析器理解 "$x++-++$x",但在 "$x+++++$x"上失败?

php - 在 PHP 脚本中插入 MySQL DB 之前检查值是否存在

mysql - 重置mysql密码错误