Php 将变量传递到mysql查询结果中;函数查询为空";

Php 将变量传递到mysql查询结果中;函数查询为空";,php,mysql,Php,Mysql,我有一个将查询传递给的类,但出现了致命错误 null'上的函数查询 尝试运行查询时发生 我附和了$mysql_的声明,得到了 select * from users 这是预期的查询,但在查询语句的上下文中,它不断告诉返回null上的致命错误函数查询 关于合法存储在$mysql\u语句中的“select*from users”为什么被解释为null,您有什么想法吗?(此处使用和未定义的属性在父类中定义): page.php: <?php include("includes/databas

我有一个将查询传递给的类,但出现了致命错误

null'上的函数查询

尝试运行查询时发生

我附和了$mysql_的声明,得到了

select * from users 
这是预期的查询,但在查询语句的上下文中,它不断告诉返回null上的致命错误
函数查询

关于合法存储在
$mysql\u语句中的“select*from users”为什么被解释为null,您有什么想法吗?(此处使用和未定义的属性在父类中定义):

page.php:

<?php
include("includes/database_classes.php");

new database_connection;
new database_query("SELECT * FROM users");

?>

…和数据库_classes.php:

<?php
/*----------------------------------------------------------------------------------------------------*/
    class database_connection
    {   
        protected $username = 'root';
        protected $password = '';
        protected $hostname = 'localhost';
        protected $database = 'assistant';  
        protected $database_handle;

        function connect()
        {
            try
            {
                $database_handle = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
            }

            catch (PDOException $e) 
            {
                print "Error!: " . $e ->getMessage() . "<br/>";
                die();
            }
        }
    }

/*----------------------------------------------------------------------------------------------------*/
class database_disconnection extends database_connection
{
    function disconnect()
    {
        $database_handle = null;
    }
}

/*----------------------------------------------------------------------------------------------------*/
    class database_query extends database_connection
    {
        protected $mysql_statement;

        function __construct( $mysql_statement )
        {
            $this->mysql_statement = $mysql_statement;

            echo $mysql_statement;

            foreach($this->database_handle->query("$mysql_statement")->fetch_assoc() as $row) {
                print_r($row);
            }
        }

    }

/*----------------------------------------------------------------------------------------------------*/

我认为您在尝试循环处理SQL查询结果时遇到了问题,这是因为您没有包含方法“fetch_assoc()”

而不是:

foreach($this->database_handle->query("$mysql_statement") as $row);
为什么不呢

foreach($this->database_handle->query("$mysql_statement")->fetch_assoc() as $row)

我想这是一个数组吧
$this->database\u handle->query($mysql\u statement”)
因此基本上您的属性数据库\u handle没有正确初始化。您最好向我们展示
数据库\u连接
class@Akintunde他遇到了与空相关的问题,因此,一旦他的database_handle变量得到排序,他就可以执行queryAlso,并显示您在何处创建database_查询类。感谢您的回答,Alien Whale,但我在使用fetch后仍然收到相同的错误。检查您的连接是否真的已连接,
$database_handle=new PDO(…)
必须读取数据库连接类中的
$this->database\u handle=new PDO(..)
$database\u handle=new PDO(“mysql:host=$hostname;dbname=$database”,$username,$password)你提到的变量不是你创建的类属性,我希望你能理解我