2013-09-26 3 views
-2

Parse error: syntax error, unexpected '.', expectingАнализировать ошибка: синтаксическая ошибка, неожиданный, ожидая

Я получаю эту ошибку

Parse error: syntax error, unexpected '.', expecting '}' in /home/l2hantol/public_html/acp/core.php on line 37

Line 37

function testServer($hostname,$user,$password,$database) { 
    try { 
     $handler = new PDO("mysql:host={$myip.zapto.org};dbname={$gameserver}",$root,$mypassword); 
     $handler = null; 
     return true; 
    } catch (PDOException $e) { 
     return false; 
    } 
} 

// Classes 

class template { 
    public $template; 

    function load($filepath) { 
     $this->template = preg_replace("#\{(.*)\}#","<?php echo $1; ?>",file_get_contents($filepath)); 
+1

Что линия 37? –

+1

Независимо от '{$ myip.zapto.org}', это неправильно. Вы имели в виду '{$ myip} .zapto.org'? Кроме того, '$ gameserver' не определен в этой функции. –

+4

Этот вопрос выглядит не по теме, потому что речь идет о тривиальной синтаксической ошибке. –

ответ

1

Что такое $myip.zapto.org ''? Возможно, вы хотите что-то вроде этого:

"mysql:host={$myip};dbname={$gameserver}" 

Или, если вам нужно построить более сложную строку, сделайте это снаружи с чем-то вроде этого:

$host = $myip . "zapto.org" 
$handler = new PDO("mysql:host={$host};dbname={$gameserver}",$root,$mypassword); 

Edit:

If myip.zapto.org это просто ваше доменное имя, вам не нужны $ или {}, поэтому вы можете просто написать:

$handler = new PDO("mysql:host=myip.zapto.org;dbname={$gameserver}",$root,$mypassword); 
+0

myip.zapto.org это мой ip, но он скрыт за ip-адресом ip-ip и потому, что мой ip динамичен и он всегда меняется. –

+0

@JohnGrigoriadic, в этом случае вам не нужно класть '$' перед ним или скобки вокруг него. Я обновил свой ответ с правильным синтаксисом. –

0

Это должно исправить:

function testServer($hostname,$user,$password,$database) { 
    try { 
    $handler = new PDO("mysql:host={$myip}.zapto.org;dbname={$gameserver}",$root,$mypassword); 
    $handler = null; 
    return true; 
} catch (PDOException $e) { 
    return false; 
} 
} 

// Classes 

class template { 
public $template; 

function load($filepath) { 
    $this->template = preg_replace("#\{(.*)\}#","<?php echo $1; ?>", 
file_get_contents($filepath)); 
+0

Объяснение относительно того, что вы сделали? ;-) –

+0

От $ handler = new PDO ("mysql: host = {$ myip.zapto.org}; dbname = {$ gameserver}", $ root, $ mypassword); to $ handler = new PDO ("mysql: host = {$ myip} .zapto.org; dbname = {$ gameserver}", $ root, $ mypassword); - Я изменил {$ myip.zapto.org} на {$ myip} .zapto.org –

+0

Почему это проголосовало за то, что с ним не так? –

0
$handler = new PDO("mysql:host={$myip.zapto.org};dbname={$gameserver}"... 
            -^  ^- 

Эта часть в вашем запросе соединения не рассматривается как строка.

Вы, вероятно, хотите:

$handler = new PDO("mysql:host={$myip}.zapto.org;dbname={$gameserver}" ... 

Хотя sprintf() выглядит более чистое решение:

$handler = new PDO(sprintf('mysql:host=%s.zapto.org;dbname=%s', $host, $dbname), 
$myip, $gameserver); 
Смежные вопросы