2014-04-06 106 views
0

我在openshift上寫了一個簡單的php文件。 我開始用非常簡單的操作(SQL),我得到了以下錯誤:意想不到的t_variable php

[Sun Apr 06 11:59:35 2014] [error] [client 127.2.31.1] PHP Parse error: syntax error, unexpected T_VARIABLE in /var/lib/openshift/53413f4a500446a9c8000172/app-root/runtime/repo/test.php on line 15 

這裏是我的代碼:

<html> 
<head> 
</head> 
<body> 
<?php 
    echo 'start'; 
    try{ 
     $dbh=new PDO("mysql:host=$_ENV{'OPENSHIFT_MYSQL_DB_HOST'};dbname=$_ENV{'OPENSHIFT_APP_NAME'}",$_ENV{'OPENSHIFT_MYSQL_DB_USERNAME'},$_ENV{'OPENSHIFT_MYSQL_DB_PASSWORD'}) or die('cannot connect db');//open a mysql database connection 
     $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 
     $sth=$dbh->prepare('SELECT * FROM FS WHERE filename<>? AND desc<>?'); 
     $sth->execute(array('','')); 
     $result=$sth->fetchAll(PDO::FETCH_ASSOC); 
     print_r($result); 
    }catch(PROException $err){ 
     echo $err->getMessage(); 
    } 
    echo 'end'; 
?> 
</body> 
</html> 

我用php checker並報告在line15同樣的錯誤。 我找不出這個問題。 感謝您的幫助。

+0

哪裏是線15? –

+0

PROException - 它是你定義的自定義異常嗎? –

+0

更可能是PDOException上的錯字... –

回答

0

PHP使用方括號來訪問數組值,而不是花括號。

更改所有$_ENV{'....'}$_ENV['....']

+0

謝謝。這是我的錯誤之一。 – user3456617

1

我相信你的錯誤就出在這裏:

}catch(PROException $err){ 

除非PROException由先前定義,通過vp_arth的建議,你可能是指PDOException。

}catch(PDOException $err){ 
+0

對不起,這是錯字。感謝你們。它現在可以工作。 – user3456617

0

$ _ [ '']不會雙引號內的工作,我認爲你需要這樣的:

"{getenv('OPENSHIFT_ENV_VARIABLE')}" 
相關問題