需要帮助php解析错误

时间:2017-04-23 17:41:23

标签: php html mysql pdo

我需要帮助解决困扰我好几天的问题。这可能是一个明显的答案,可能已经得到了回答。作为先决条件,我做了很多谷歌搜索和堆栈爬行,无济于事。说实话,我不确定问题是什么。非常感谢任何帮助,并希望在我的特殊情况下拯救他人一些过早的秃头。所以没有进一步的Ado,这里是代码:

代码 - db.php

class Database {
 private function host() {
  return 'localhost:3306';
 }

 private function user() { // line 8 is here
  return "root";
 }

 private function password() {
  return "";
 }

 private function dbname() {
  return "stonelabs";
 }

 private $dbh;
 private $error;

 public function __construct() {

  $dsn = 'mysql:host=' . $this->host() . ';dbname=' . $this->dbname();

  $options = array(
   PDO::ATTR_PERSISTENT    => true,
   PDO::ATTR_ERRMODE       => PDO::ERRMODE_EXCEPTION
  );   

  try{
   $this->dbh = new PDO($dsn, $this->user(), $this->password(), $options);
   return true;
  }

  catch(PDOException $e){
   $this->error = $e->getMessage();
   return false;
  }
 }
}

这是我收到的错误:

错误 - 在浏览器中

  

解析错误:语法错误,意外的'私有'(T_STRING),期待函数(T_FUNCTION)/ storage / emulated / 0 / var / www / Stone Info Labs / test / core / core / helpers / db.php on第8行

我正在尝试制作一个简单的PDO数据库类,以前做了很多次,根本就行不通。索引文件中只需要这个类文件(只有4行,打开php括号,3行需要行,所有这些都在这个阶段工作)。我正在Android 6.0.1上开发和运行,使用服务器终极专家提供的lighttpd服务器,所有这些服务器一直有效,包括以前的网站。

修改

我使用的是php 5.5版

另一个编辑

我将$ this-> pass()更改为$ this->密码(),但错误相同。上面的代码已更新

2 个答案:

答案 0 :(得分:1)

找到的解决方案:@ num8er。信用转到他的答案,我只是张贴这个,所以答案可用,直到@ num8er可以发布答案。问题是隐藏在我的代码中的隐形字符,而num8er通过格式化程序运行代码来找到它们。

解决方案

确保不会意外地在代码中输入或复制/粘贴不可见的字符,如果解析错误令人困惑,罪魁祸首可能是不可见的字符

答案 1 :(得分:0)

你有两个问题:

  1. PHP版,推荐5.4 +
  2. 方法password()被称为pass(),你应该更正
  3. 除了,它一切正常

    我建议您查看此链接以获取一些有用的信息: