【发布时间】: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