参考:http://php.net/manual/en/mysqli.query.php
mysqli::query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
link
Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()
所以,问题是为什么只有mysqli_query的程序风格需要$ link参数?
答案 0 :(得分:1)
mysqli
是一门课。无论您使用new mysqli()
还是mysqli_connect()
实例化它,结果都是mysqli
类的对象。
过程样式函数只是类方法的瘦包装,以便能够从mysql_*
API更快地进行迁移。事后看来,这可能不是一个聪明的主意。您可以像这样大致想象这些功能:
function mysqli_query(mysqli $link, string $query, int $resultmode = MYSQLI_STORE_RESULT) {
return $link->query($query, $resultmode);
}
在内部,它们在提供的对象上触发相同的方法,但是您无需调用方法,而是调用函数并将该对象作为第一个参数传递。