0

我创建了一个 php 类它给了我语法错误。文件意外结束。当我在 localhost 上进行测试时,它运行良好。但是当我在服务器上测试时,它显示了这个错误。我的服务器在 linux 平台上,我在 windows 上工作。

联系方式.php

<?php

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
ini_set('display_errors', '1');

require 'database.php';

class Contact
{

    private $unique_id,$card_name,$name,$telephone_no,$company_name,$department,$job_title,$home_address,$work_address,$user_id,$status;


    function Contact($unique_id,$card_name,$name,$telephone_no,$company_name,$department,$job_title,$home_address,$work_address,$user_id,$status)
    {

        $this->unique_id = $unique_id;
        $this->card_name = $card_name;
        $this->name = $name;
        $this->telephone_no = $telephone_no;
        $this->company_name = $company_name;
        $this->department = $department;
        $this->job_title = $job_title;
        $this->home_address = $home_address;
        $this->work_address = $work_address;
        $this->user_id = $user_id;
        $this->status = $status;
    }

    function createContact()
    {

        $database = new Database(ContactsConstants::DBHOST,ContactsConstants::DBUSER,ContactsConstants::DBPASS,ContactsConstants::DBNAME);
        $dbConnection = $database->getDB();

        $stmt = $dbConnection->prepare("select * from contact where name=?");
        $stmt->execute(array($this->name));
        $rows = $stmt->rowCount();

        if($rows > 0)
        {
            $response = array("status"=>-3,"message"=>"contact exists.");
            return $response;
        }


        $stmt = $dbConnection->prepare("insert into contact(card_name,name,telephone_no,company_name,department,job_title,home_address,work_address,user_id,status) values(?,?,?,?,?,?,?,?,?,?)");
        $stmt->execute(array($this -> card_name,$this -> name,$this -> telephone_no,$this -> company_name,$this -> department,$this -> job_title, $this -> home_address,
            $this -> work_address,$this -> user_id,$this -> status));
        $rows = $stmt->rowCount();
        $Id = $dbConnection->lastInsertId();

        $stmt = $dbConnection->prepare("select * from contact where unique_id=?");
        $stmt->execute(array($Id));
        $contact = $stmt->fetchAll(PDO::FETCH_ASSOC);

        if($rows < 1) {
            $response = array("status"=>-1,"message"=>"Failed to add contact., unknown reason");
            return $response;
        }
        else
        {
            $response = array("status"=>1,"message"=>"Contact created successfully.","contact"=>$contact);
            return $response;
        }

    }

    function getContacts()
    {
        $database = new Database(ContactsConstants::DBHOST,ContactsConstants::DBUSER,ContactsConstants::DBPASS,ContactsConstants::DBNAME);
        $dbConnection = $database->getDB();

        $stmt = $dbConnection->prepare("SELECT contact.unique_id, contact.card_name, contact.name,contact.telephone_no,contact.company_name,contact.department,
                                        contact.job_title,contact.home_address,contact.work_address,contact.user_id,contact.status, Users.user_name, Users.user_id FROM contact INNER JOIN Users
                                        ON contact.user_id = Users.user_id WHERE contact.user_id = ?");
        $stmt->execute(array($this -> user_id));
        $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

        $contacts = array();

        if (count($rows) > 0) {

            foreach($rows as $row)
            {
                $contacts[] = $row;
            }

            $response = array("status" => 1, "message" => "Success", "contacts" => $contacts);
            return json_encode($response);
        }

        else {
            $response = array("status"=>-1,"message"=>"Contact list is empty");
            return json_encode($response);
        }
    }

    function updateContact()
    {
        $database = new Database(ContactsConstants::DBHOST,ContactsConstants::DBUSER,ContactsConstants::DBPASS,ContactsConstants::DBNAME);
        $dbConnection = $database->getDB();

        $stmt = $dbConnection->prepare("UPDATE contact SET `card_name` = :card_name, `name` = :name, `telephone_no` = :telephone_no,`company_name` = :company_name, 
                                        `department` = :department, `job_title` = :job_title, `home_address` = :home_address, `work_address` = :work_address, `user_id` = :user_id, `status` = :status WHERE `unique_id` = :unique_id");

        $stmt->execute(array(':card_name' => $this -> card_name, ':name' => $this -> name,':telephone_no' => $this -> telephone_no,':company_name' => $this -> company_name,':department' => $this -> department,
            ':job_title' => $this -> job_title, ':home_address' => $this -> home_address,':work_address' => $this -> work_address,':user_id' => $this -> user_id, ':status' => $this -> status, ':unique_id' => $this -> unique_id));

        $count = $stmt->rowCount();

        if($count > 0) {
            $response = array("status"=>1,"message"=>"Contact Updated Successfully.","contact"=>$count);
            return $response;
        }
        else {
            $response = array("status"=>-1,"message"=>"Failed to update.");
            return $response;
        }
    }

    function deleteContact()
    {

        $database = new Database(ContactsConstants::DBHOST,ContactsConstants::DBUSER,ContactsConstants::DBPASS,ContactsConstants::DBNAME);
        $dbConnection = $database->getDB();

        $stmt = $dbConnection->prepare("select * from contact where `unique_id` =?");
        $stmt->execute(array($this->unique_id));
        $rows = $stmt->rowCount();

        if($rows == 0)
        {
            $response = array("status"=>-3,"message"=>"contact dose not exists.");
            return $response;
        }

        $stmt = $dbConnection->prepare("Delete from contact WHERE `unique_id` = :unique_id");

        $stmt->execute(array(":unique_id"=>$this->unique_id));

        $count = $stmt->rowCount();

        if($count > 0) {
            $response = array("status"=>1,"message"=>"Contact Deleted Successfully.","contact"=>$count);
            return $response;
        }
        else {
            $response = array("status"=>-1,"message"=>"Failed to delete.");
            return $response;
        }
    }
}
?>

错误:

<br />
<b>Parse error</b>:  syntax error, unexpected end of file, expecting variable (T_VARIABLE) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN) in
<b>/var/www/html/contactsapi/Contact.php</b> on line
<b>128</b>
<br />

第 128 行是 -

$stmt = $dbConnection->prepare("select * from contact where `unique_id` =?"); //line 128

我在 getContacts.php 中使用它

获取联系人.php

    <?php

header("Content-type: application/json");

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
ini_set('display_errors', '1');

require 'Contact.php';

    $jsonText = file_get_contents('php://input');

    $json = json_decode($jsonText);
    $user_id = $json->user_id;

    $contact = new Contact("","","","","","","","","",$user_id,"");
    $response = $contact->getContacts();

    if ( $response == null ) {
        $response = json_encode(array("result" => -2, "message" => "Empty result"));
        echo $response;
    } else {
        echo $response;
    }
?>

我已经浏览了如何解决语法错误链接。我发现没有任何改变要做。我检查了花括号,标签的开始和结束。还检查了是否区分大小写。但不明白这里有什么问题。

任何人都可以帮忙吗?谢谢..

4

2 回答 2

0

我检查了您的代码是否完美,但请执行以下操作

1:去掉php标签开头的空格

2:删除类中 php '?>' 的结束标记或删除 php 结束标记之间和 } 括号之间的空格

3:使用__construct()代替Contact方法

于 2016-08-27T06:52:41.007 回答
0

您的代码在语法上是正确的,我在这里发现的唯一问题是 php 标记前后的“空格” <?php?> 这是 Windows 系统不会遇到的问题,但在 linux 系统上会出现错误或页面空白问题。尝试从您的contact.php 文件中删除php 标记前后的空格。

于 2016-08-27T06:23:18.450 回答