【问题标题】:500 Server error when initializing a class PHP初始化类 PHP 时出现 500 服务器错误
【发布时间】:2015-04-15 08:34:52
【问题描述】:

我正在编写一个数据库来更好地管理我们的客户。 显示客户端数据的逻辑完美无缺。

处理我的方法调用的类称为“kunde”

这就是我如何初始化类并调用方法来获取一些结果数组:

$showAllgemeineKundendaten = new kunde();
$result_array = $showAllgemeineKundendaten -> show_client_kundendaten($_SESSION['id'], 1);

我使用结果数组来显示内容 - 但这有点偏离我的问题。

现在我正在编写将新客户端插入另一个 php 文档中的数据库的逻辑,一旦在 php 文件中初始化类“kunde”,我就会不断收到 500 服务器错误。

我目前正在使用 ajax 向该文档发送 POST :

    $gehrKundennummer = 0;
    $kundenklasse = 0;
    $lkw12t = 0;
    $lkw3t = 0;
    $autobus = 0;
    $firmenname1 = 0;
    $firmenname2 = 0;
    $uidnummer = 0;
    $peselregon = 0;
    $firmenart = 0;
    $strasse = 0;
    $ort = 0;
    $plz = 0;
    $land = 0;

    $gehrKundennummer = $_POST[0];
    $kundenklasse = $_POST[1];
    $lkw12t = $_POST[2];
    $lkw3t = $_POST[3];
    $autobus = $_POST[4];
    $firmenname1 = $_POST[5];
    $firmenname2 = $_POST[6];
    $uidnummer = $_POST[7];
    $peselregon = $_POST[8];
    $firmenart = $_POST[9];
    $strasse = $_POST[10];
    $ort = $_POST[11];
    $plz = $_POST[12];
    $land = $_POST[13];
    $data = array($gehrKundennummer, $kundenKlasse, $lkw12t, $lkw3t, $autobus, $firmenname1, $firmenname2, $uidnummer, $peselregon, $firmenart, $strasse, $ort, $plz, $land);
    $insert = new kunde();
    $insert -> insert_client($data, 1);

注意 当表单以经典方式发送到该 php 文件时,也会发生 500 服务器错误。

这就是我的类和插入方法的样子:

class kunde {
        public function insert_client($data, $case){
            $serverName = "SERVERNAME\MSSQLSRV";
            $connectionInfo = array('Database'=>'TEST', "UID"=>"TEST", "PWD"=>"TEST");
            $conn = sqlsrv_connect($serverName, $connectionInfo);
            switch ($case) {
                case 1:
                    $gehrKundennummer = $data[0];
                    $kundenklasse = $data[1];
                    $lkw12t = $data[2];
                    $lkw3t = $data[3];
                    $autobus = $data[4];
                    $firmenname1 = $data[5];
                    $firmenname2 = $data[6];
                    $uidnummer = $data[7];
                    $peselregon = $data[8];
                    $firmenart = $data[9];
                    $strasse = $data[10];
                    $ort = $data[11];
                    $plz = $data[12];
                    $land = $data[13];
                    $angelegt_am = date();
                    $tsql = "INSERT INTO Kundendaten$ (gehr_kundennummer, kundenklasse_ID, firmenname1, firmenname2, firmenart, strasse, land, plz, ort, pesel_regon, uid, lkw12t, lkw3t, autobus, angelegt_am)
                            VALUES ('$gehrKundennummer', '$kundenklasse', '$firmenname1', '$firmenname2', '$firmenart', '$strasse', '$land', '$plz', '$ort', '$peselregon', '$lkw12t', '$lkw3t', '$autobus', '$angelegt_am')";
                    break;
                default:
                    # code...
                    break;
            }
            $stmt = sqlsrv_query($conn, $tsql);
            echo "done";
        }
// REST OF THE CLASS
}

当我尝试初始化类时,我在控制台中收到此错误:

POST http://#########/logic/add_client_logic.php 500 (Internal Server Error)jquery-1.11.2.min.js:4 m.ajaxTransport.sendjquery-1.11.2.min.js:4 m.extend.ajaxadd_client.js:21 (anonymous function)jquery-1.11.2.min.js:3 m.event.dispatchjquery-1.11.2.min.js:3 m.event.add.r.handle

我是 ajax 新手,所以也许我在那里做错了什么?

这是我的js文件内容:

$(function (){
    var $allgSubmit = $('#allg_firmendaten_submit');
    $allgSubmit.click(function(){
        alert('clicked');
        event.preventDefault();
        var gehrKundennummer = $('#gehrKundennummer').val();
        var kundenklasse = $("input[type='radio'][name='kundenklasse']:checked").val();
        var lkw12t = $('#lkw12t').val();
        var lkw3t = $('#lkw3t').val();
        var autobus = $('#autobus').val();
        var firmenname1 = $('#firmenname1').val();
        var firmenname2 = $('#firmenname2').val();
        var uidnummer = $('#uidnummer').val();
        var peselregon = $('#peselregon').val();
        var firmenart = $('#firmenart option:selected').val();
        var strasse = $('#strasse').val();
        var ort = $('#ort').val();
        var plz = $('#plz').val();
        var land = $('#land').val();
        var allgArray = [ gehrKundennummer, kundenklasse, lkw12t, lkw3t, autobus, firmenname1, firmenname2, uidnummer, peselregon, firmenart, strasse, ort, plz, land ];
        $.ajax({
            url: "http://########/logic/add_client_logic.php",
            type: "POST",
            data: $allgArray,
            success: function(){
                var $allgSave = $('#allgSave');
                $allgSave.toggle();
            },
            error: function(){
                alert('fail');
            }
        });
    });
});

【问题讨论】:

  • 500 错误将写入您的错误日志。查看您的错误日志或ini_set('display_errors', 1);(如果不在生产中)。此外,Javascript 不需要 $ 来声明变量。
  • 我有 ini_set('display_error',1);已经在我的 index.php 中我在哪里可以找到错误日志?
  • 如果您使用的是 Apache2 并且没有在 php.ini 中设置为自定义位置,它将位于 /var/log/apache2/error.log
  • 您真的有一张名为Kundendaten$ 的表吗?我不确定 mysql 表的确切规则,但您至少需要在字符串中对其进行转义。
  • 我正在使用安装了 SQL 的 Windows Server 2012(所以我不知道错误日志在哪里),我正在使用 SQLSRV 扩展与我已将 Excel 工作表导入数据库的服务器通信,这就是它如何得到 importet - 它看起来很奇怪,但当我尝试从表中读取数据时工作

标签: php jquery sql-server ajax


【解决方案1】:

已解决

问题很简单,我怪我自己打扰了你们。

由于我的逻辑文件位于范围之外,因此在初始化之前从未包含过该类 == 服务器错误。

我只是在执行我的逻辑文件之前包含了这个类,它现在可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 2016-03-26
    • 2016-03-23
    • 2012-04-14
    相关资源
    最近更新 更多