我在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行报告了相同的错误。 我无法弄清楚问题所在。 谢谢你的帮助。
答案 0 :(得分:1)
我相信你的错误就在这里:
}catch(PROException $err){
除非您之前根据vp_arth的建议定义了PROException,否则您可能意味着PDOException。
}catch(PDOException $err){
答案 1 :(得分:0)
PHP使用方括号来访问数组值,而不是大括号。
将您的所有$_ENV{'....'}
更改为$_ENV['....']
答案 2 :(得分:0)
$ _ ['']在双引号内不起作用,我想你需要这样:
"{getenv('OPENSHIFT_ENV_VARIABLE')}"