关于PHP连接对象

关于PHP连接对象,php,Php,有人能给我解释一下为什么以下是错误的: $sql='SELECT * FROM images'; $hostname ='localhost'; $username= 'root'; $password= ''; $db= 'myDB'; $numRows=new mysqli($hostname, $username, $password, $db)->query($sql)-> num_rows; 抛出的错误是:语法错误、意外的T_对象_运算符 有没有可能用上面的一句话来纠正

有人能给我解释一下为什么以下是错误的:

$sql='SELECT * FROM images';
$hostname ='localhost';
$username= 'root';
$password= '';
$db= 'myDB';

$numRows=new mysqli($hostname, $username, $password, $db)->query($sql)-> num_rows;
抛出的错误是:语法错误、意外的T_对象_运算符


有没有可能用上面的一句话来纠正呢?谢谢。

新mysqli(..)
周围放上括号

即,放置以下内容:

$numRows=(new mysqli($hostname, $username, $password, $db))->query($sql)-> num_rows;
而不是:

$numRows=new mysqli($hostname, $username, $password, $db)->query($sql)-> num_rows;
但是正如马尔布所说,这是一件非常可怕的事情。稍后,调试将很困难。

在实例化mysqli之后进行链接

$m = new mysqli($hostname, $username, $password, $db);
$numrows = $m->query($sql)->num_rows;

你为什么要尝试这么可怕的事情?数据库操作可以也确实会失败——像这样的失败链接假定成功,并且在某个时候会在您身上爆炸。嗨,Ahmedtabrez,仍然像您所说的那样放括号并不能解决错误。是的,bsdnoobz可以工作,但逻辑上它也应该像我上面所说的那样工作。对象已创建并正在执行函数。试图找出对象和链接背后的逻辑。谢谢。