Php mysqli_connect参数如何可选?

Php mysqli_connect参数如何可选?,php,mysqli,Php,Mysqli,根据PHP手册,函数的所有参数都是可选的: mysqli_connect($host,$username,$password,$dbname,$port,$socket); “可选”是什么意思?我不明白的是,我们如何跳过这些值,让它使用默认值?您可以直接在php.ini配置文件中指定默认的MySQL凭据 请参阅作为参考 然后,如果调用mysqli_connect(),仍然会使用php.ini中的那些设置进行连接(当然,假设它们是正确的) 除非你不明白默认参数的概念?对不起,如果我错了,但我无法

根据PHP手册,函数的所有参数都是可选的:

mysqli_connect($host,$username,$password,$dbname,$port,$socket);

“可选”是什么意思?我不明白的是,我们如何跳过这些值,让它使用默认值?

您可以直接在php.ini配置文件中指定默认的MySQL凭据

请参阅作为参考

然后,如果调用mysqli_connect(),仍然会使用php.ini中的那些设置进行连接(当然,假设它们是正确的)


除非你不明白默认参数的概念?对不起,如果我错了,但我无法从你的问题中清楚地理解。如果是这样的话,请:

好的,我自己想的。这完全是个骗局。由于
mysqli\u connect
接受不同的字符串作为其参数,“可选”(因此跳过参数)意味着提供空字符串
(“”)
作为参数,在这种情况下,它使用默认值。

当参数是可选的时,意味着不需要提供任何值。对于任意数量的参数,该函数将照常工作

new mysqli()
/
mysqli\u connect()
具有所有参数的默认值。这些值可以在INI文件中指定。连接时,如果函数调用中未提供任何值,PHP将使用默认值

如果您想跳过中间的一个参数,可以通过<代码> null <代码>或一个空字符串,它也将告诉MySqLi使用默认值。 小心。PHP手册说

mysqli_connect()
newmysqli
是彼此的别名,但这并不完全正确。如果您没有为
mysqli\u connect()
提供任何参数,它将选择默认参数。但是,
new mysqli()
根本不会尝试连接。如果没有提供参数,它的行为将与mysqli_init()完全相同。您可以通过两种方式克服此问题:

// pass null as a single argument
$mysqli = new mysqli(null);

// call connect manually
$mysqli = new mysqli();
$mysqli->connect();

我不确定你是否检查过了。此处显示的方法签名包括默认值(例如,
string$host=ini_get(“mysqli.default_host”)
)。感谢Álvaro提供的链接,但有一点仍然不清楚,如果我在
mysqli\u connect中为数据库部分传入空字符串
(“”)
,将选择哪个默认数据库($host、$username、$password、$dbname、$port、$socket);
?在
mysqli.default\u-host
INI指令中设置的任何内容;
INI得到的(“mysqli.default\u-host”)
文档语法就是这个意思。如果这个语法也是空的,它将连接到
localhost
(这可能是用C编写的PHP源代码中硬编码的)。谢谢你对我的支持,阿尔瓦罗,我完全明白了。我的疑问在于第四个参数,它包含数据库名称。假设我这样写:
mysqli_connect($host,$username,$password,“,$port,$sock‌​et);
如果数据库名称为空字符串,则选择哪个数据库?是否有默认数据库,就像有默认用户帐户“root”一样?这似乎是一个完全不同的问题。它不会选择任何数据库。在SQL中,不必选择工作数据库;您只需将数据库名称添加到所有查询中:
 从shop.customers
中选择COUNT(*)。感谢您的回复,但有一点仍然不清楚,如果我在mysqli\u connect($host、$username、$password、$dbName、$port、$sock)中为dbName部分传入一个空字符串(“”),那么会选择哪个默认数据库‌​et);?可选意味着您可以完全跳过它。