2014-04-06 109 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')}" 
相关问题