意想不到的t_variable php

时间:2014-04-06 16:28:54

标签: php syntax-error openshift

我在openshift上写了一个简单的php文件。 我从非常简单的操作(SQL)开始,我得到了以下错误:

[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并在第15行报告了相同的错误。 我无法弄清楚问题所在。 谢谢你的帮助。

3 个答案:

答案 0 :(得分:1)

我相信你的错误就在这里:

}catch(PROException $err){

除非您之前根据vp_arth的建议定义了PROException,否则您可能意味着PDOException。

}catch(PDOException $err){

答案 1 :(得分:0)

PHP使用方括号来访问数组值,而不是大括号。

将您的所有$_ENV{'....'}更改为$_ENV['....']

答案 2 :(得分:0)

$ _ ['']在双引号内不起作用,我想你需要这样:

"{getenv('OPENSHIFT_ENV_VARIABLE')}"