2012-05-26 53 views
0

为什么下列哪项是错误有人能向我解释:关于PHP连接对象

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

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

错误抛出是:语法错误,意想不到的T_OBJECT_OPERATOR .....

,并有可能纠正它在上面的一个声明?谢谢。

+5

为什么你会想尝试这样一个可怕的事情?数据库操作可能并且确实会失败 - 像这样假设成功并且会在某个时候炸毁你。 –

回答

2

您实例化mysqli。

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

是的,它运作bsdnoobz,但从逻辑上讲,它也应该以我上面的方式工作。该对象已经创建并正在执行该功能。试图找出对象和链接背后的逻辑。谢谢。 – user1207965

0

将括号放在new mysqli(....)左右。

即。将以下内容:

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

相反的:

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

但作为@MarcB说,这是一个非常可怕的事情。之后,调试将会很困难。

+0

嗨Ahmedtabrez,仍然把括号,因为你指出并没有解决这个错误。 – user1207965