PHP和JQuery奇怪的行为

时间:2015-03-23 20:59:45

标签: javascript php jquery html oracle

我有一个3层架构。 db是oracle,业务/逻辑层是php,而前端是html / JavaScript。我的业务/逻辑层有一堆单元测试,只有满足要求才能通过。当我通过javascript连接业务层和前端时,会出现问题。经过大量调试后,我找到了问题的根源:

JavaScript代码导致错误。

function getAllUsers() {
        var allUsers = [];
    $.ajax ({
            url: '../php/get-all-users.php',
            success:function(data){
                allUsersJSON = JSON.parse(data);
                console.log(allUsersJSON);
                for (var i = 0; i < allUsersJSON.length; i++){
                    allUsers[i] = allUsersJSON[i].USER_NAME;
                }
                console.log(allUsers);
            }
    });

    return allUsers;

}

../的PHP / GET-全users.php

<?php
    include_once 'Database.php'

    $db = Database::instance();  // Singleton to initialize db.
    echo json_encode($db->getAllUsers());
?>

Database.php 片段。

public function createConnection($username, $password, $connectionString){
        $this->_connection = oci_connect($username, $password, $connectionString);
        if (!$this->_connection) {
            $e = oci_error();
            trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
            throw new Exception("Database connection failed. Please check constructor arguments.");
        }else{
            //print "Database connection established.\n";
        }
    }

在我的一项测试中,我尝试了 echo json_encode($ db-&gt; getAllUsers()); 并获得了一个结果“[\”“USER_NAME \”:\“userName \ “]”即可。在get-all-users.php中,如果我注释掉所有内容,并回显我从测试中获得的字符串,那么网页现在可以正常加载,但当然这不是我想要的。此外,如果我在get-all-users.php中取消注释 include_once'Database.php'并在我的Database.php中注释掉 oci_connect ,则网页加载正常。这使我得出结论,问题的根源是oci_connect。

有没有其他人有类似的经历?我试过谷歌搜索但没有找到结果。如果您需要更多信息来解决这个问题,我很乐意将它们吐出来。

编辑:

我在linux上工作。我的队友正在使用Windows,他没有这样的问题。

0 个答案:

没有答案