2016-01-28 4 views
1

Для моего школьного проекта мне нужно восстановить некоторую информацию в одной базе данных и связать ее с другой базой данных. Но для этого я хочу использовать ini-файл, потому что, если журнал для подключения одной базы данных изменился, я не хочу менять его в коде.Информация о базе данных в файле INI

Мой код:

<?php 
// On recupére les info dans fichier ini pour mySQL 
//Get Information in ini for mySQL 

$fichier = 'BDDconnexion.ini'; 

if(file_exists($fichier)){ 

$config = parse_ini_file($fichier,true); 

$ip = "$config['mySQL'][ip]"; 
$port = "$config['mySQL'][port]"; 
$nomBDD = "config['mySQL'][nomBDD]"; 
$login = "$config['mySQL'][login]"; 
$password = "$config['mySQL'][password]"; 


} 

// On se connecte à MySQL 
//Connexion to MySQL 
try { 
$bdd = new PDO(mysql . ':host='.$ip.'dbname='.$nomBDD,$login,$password,array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); 
    } 
catch (Exception $e) 
    { 
    die('Erreur : '. $e->getMessage()); 
    } 


?> 

Он не работает, и у меня есть сообщение об ошибке:

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\connectmySQL.php on line 14.

и состав моего ини файла:

[mySQL] 
ip="127.0.0.1" 
port=4900 
nomBDD=MagicCash 
login="******" 
password="" 

Может кто-нибудь Помогите мне ?

ответ

2

Basic PHP: Вы не можете быть указаны ключи массива в " -quoted строки:

$ip = "$config['mySQL'][ip]"; 
       ^-----^--- incorrect 

Ниже приведены правильный синтаксис для таких вещей:

$ip = "foo $arr[key] bar"; 
$ip = "foo {$arr['key']} bar"; // note the {} 
$Ip = "foo " . $arr['key'] . " bar"; 

Также обратите внимание, что вы используете многомерный массив, который также вызовет проблемы. синтаксический анализатор PHP не является жадным:

$foo['bar']['baz'] = 'qux'; 
echo "$foo[bar][baz]"; // output is "Array[baz]" 

Для многомерного переменного массива в " -quoted строки, вы MUST использовать {} обозначения:

echo "{$foo['bar']['baz']}"; // outputs 'qux' 

И, конечно, в большей схеме , ваши переменные не обязательно должны указываться во ВСЕХ. Эти два заявления

$foo = "$bar"; 
$foo = $bar; 

, по существу, функционально идентичны, за исключением "$bar" версии PHP сил, чтобы создать новую строку, введите значения $bar, а затем присвоить ему $ Foo. Иногда это желательно, если $bar - это нечто иное, чем строка, но обычно это пустая трата циклов процессора.

+0

Итак, для моей работы с кодом мне нужно изменить эту строку: $ ip = "$ config ['mySQL'] [ip]"; с этим? $ ip = "foo $ arr [ip] bar"; Я не понимаю, что такое «foo» «arr» и «bar», я не очень хорош на данный момент в этом. –

+0

Итак, я могу написать: $ ip = "foo $ config [mySQL] [ip] bar "; для определения настройки моего IP-адреса, который мне нужен для моего подключения в mySQL? –

+0

Нет, вам просто нужно '$ ip = $ config ['mySQL'] ['ip']' –

Смежные вопросы