为什么连接PDO有语法错误?


why is there a syntax error in connection PDO?

config.ini

[database]
host = 127.0.0.1
dbname = login
user = root
password = 
PHP

$con = parse_ini_file('config.ini.php');
date_default_timezone_set('Asia/Kolkata');
try {
$db = new PDO("mysql:host=$con['host'];dbname=$con['dbname']",$con['user'],$con['password']) ;
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
} catch(PDOExpection $e ) {
die($e->getMessage());
}

当我尝试连接这个给我语法错误像这样

语法错误,unexpected " (T_ENCAPSED_AND_WHITESPACE), expect标识符(T_STRING)或变量(T_VARIABLE)或数字(T_NUM_STRING)

您正在使用插值在PDO DSN参数中包含数组表达式。因此,你必须在字符串

中使用{}花括号
$db = new PDO("mysql:host={$con['host']};dbname={$con['dbname']}", $con['user'], $con['password']) ;

或者直接使用串联。

$db = new PDO("mysql:host=" . $con['host'] . ";dbname=" . $con['dbname'], $con['user'], $con['password']) ;