PHP致命错误:无法在第0行的“未知”中排队新计时器

时间:2016-10-23 06:54:44

标签: php mysql apache

我为我的compnay编写了一个简单的Web应用程序,可以让用户登录来安排他们的工作时间。此外,用户还可以查看他或她使用ajax从java.jar回调的报告。 (我们使用java来分析)我使用Xampp在虚拟机HyperV中设置服务器,它可以在开始时成功运行,但是在20小时或超过一天之后它就不会让任何人登录。

我打开error.log显示:

  

PHP致命错误:无法在第0行的未知中排队新计时器

。 。 。然后:

  

PHP警告:mysqli_connect():( HY000 / 2002):未知错误

我不明白是什么原因导致这种情况发生以及如何解决 我知道当我重新启动apache服务器时,它仍然可以使用,直到发生错误。

我的系统环境:
win7 64位HyperV
xampp Apache / 2.4.18,php / 7.0.6,mysql / 5.1

这是我的代码:

mysql_start.php

<?php
header("Content-Type:html;charset=utf-8");

$servername = "127.0.0.1";
$username   = "root";
$password   = "cc1234";
$dbname     = "cc_tw000427";

$conn = null;

try {
    $conn = new mysqli($servername, $username, $password, $dbname);
} catch (Exception $e) {
    $error_message = "Connect Error (" .$conn->connect_errno ." )" . $conn->connect_error;
    error_log($error_message, 3, "php_error_log");
    header("location:login.php?err=$e");
}

$conn->set_charset("utf-8");
$strDBColLoingAccount = "AccountID";

checklogin.php

session_start();
include_once("mysql_start.php");

$yid   = trim(filter_input(INPUT_POST, "yid"));
$passd = trim(filter_input(INPUT_POST,"passd"));

$strSql = "SELECT acc.*, b.String_10_1 FROM basicstoreinfomanageacc_sub acc,basicstoreinfo b
           WHERE acc.$strDBColLoingAccount ='$yid' AND acc.String_50_1 = b.String_50_1";
$result = $conn->query($strSql);
$n      = $result->num_rows;
if ($n == 0) {
  header("Location:../desktop/login.php?err=1");
  echo "Error 1";
    exit();
}

while ($row = $result->fetch_assoc()) {
    $passd_right = $row["AccountPwd"];
    $user_id     = $row["AccountID"];
    $user_name   = $row["AccountName"];
    $user_dep_id = $row["String_10_1"];
    $user_dep    = $row['String_50_1'];
}
$result->close();

if (($passd_right == "") || ($passd_right == NULL)){
    session_start();
    $_SESSION['user_id']   = $user_id;
    $_SESSION['user_name'] = $user_name;
    header("location:newpwd.php");
    exit();
}

if ($passd == $passd_right) {
    $_SESSION['user_id'] = $user_id;
    $_SESSION['user_name'] = $user_name;
    $_SESSION['loginOK'] = 'yes';
    $_SESSION['year_i']  = date('Y',time());
    $_SESSION['year_f']  = date('Y',time());
    $_SESSION['month_i'] = date('m',time());
    $_SESSION['month_f'] = date('m',time());
    $_SESSION['day_i']   = date('d',time());
    $_SESSION['day_f']   = date('d',time());
    $_SESSION['Hour']    = date('Y-m-d G:i:s',strtotime('+6 hour'));
    $_SESSION['user_dep_id'] = $user_dep_id;
    $_SESSION['user_dep'] = $user_dep;
    header("Location:../desktop/Punch.php");
} else {
        header("Location:../desktop/login.php?err=1");
}

$conn->close();
?>

接下来两个* .php文件用于从网上接收帖子 select.php用于从mysql中选择数据而不是html标签中的输出 save.php用于保存来自网络的数据。

select.php

<?php
session_start();
include_once '../control/mysql_start.php';
$strYear     = $_POST['year'];
$strMonth    = $_POST['month'];
$strDay      = $_POST['day'];
        .
        .//some codes
        .
$strSql = "SELECT * FROM basicemploymentinfo bei WHERE bei.BelongStore = '". $_SESSION['user_dep']."'".
          "AND ((bei.datetime_2 is null AND bei.datetime_3 is null) OR (bei.datetime_2 is null AND bei.datetime_3 >= STR_TO_DATE('" . $strDate . "', '%Y-%m-%d'))" .
          " OR (bei.datetime_2 <= STR_TO_DATE('" . $strDate . "', '%Y-%m-%d') AND bei.datetime_3 is null)" .
          " OR (bei.datetime_2 <= STR_TO_DATE('" . $strDate . "', '%Y-%m-%d') AND bei.datetime_3 >= STR_TO_DATE('" . $strDate . "', '%Y-%m-%d'))) "
          ."AND bei.Active ='Y'";

$EmpId   = array();
$EmpName = array();

if ($result = $conn->query($strSql)) {
    while($row = $result->fetch_assoc()) {
        array_push($EmpId, $row['String_20_1']);
        array_push($EmpName, $row['String_20_2']);
        .
        .//some codes
        .
    }
}
$Emp = array_combine($EmpId, $EmpName);

$strSql = " SELECT Distinct date_format(DateTime_1, '%e') as date, AutoCheck
            FROM hrotcheck
            WHERE date_format(DateTime_1, '%Y-%m-%d') = '$newformat'
            AND AutoCheck = 'C'
            AND String_20_1 IN ($array_emp_id)";

if ($result = $conn->query($strSql)) {
    $n = $result->num_rows;
    if ($n > 0) { $checkboxVerify = 'C';}
}
$result->close();

foreach ($Emp as $EId => $EName)
{
        .
        .//some codes
        .
        $strSql = "SELECT RegularM_1, RegularM_2, FORMAT(OT_3, 1) as OT_3, TOM, TOTM, Notes, AutoCheck FROM hrotcheck where string_20_1 = '" . $EId . "' AND"." date_format(DateTime_1,'%Y-%m-%d') = '$newformat'";
        $result = $conn->query($strSql);

        if ($result->num_rows > 0) {
            while($row = $result->fetch_assoc()) {

                $RegularM_1 = $row['RegularM_1'];
                $RegularM_2 = $row['RegularM_2'];
                $OT3   = $row['OT_3'];
                $tom   = $row['TOM'];
                $totm  = $row['TOTM'];
                $notes = $row['Notes'];
            }
        }
        $result->close();
        .
        .//I did a lot of SQL select and use that to create htmltable
        .
        $output .= '
                    <tr data-table="sub">
                        <td>'.$row['string_20_1'].'</td>
                        <td>'.$row['string_20_2'].'</td>
                            .
                            .//<td>...</td>
                            .
                        <td class="'.$condition16.'">'.$notes.'</td>
                        <td class="'.$condition17.'"></td>
                    </tr>
                ';
}
        .
        .//some codes
        .
$strSql01 = "SELECT * FROM manufacturejobschedulingpersonal where string_20_1 = '".
          $row['string_20_1']."' AND"." date_format(DateTime_1,'%Y-%m-%d') = '$newformat'";
$result01 = $conn->query($strSql01);

if ($result01->num_rows > 0) {
    while ($row01 = $result01->fetch_assoc()) {
        .
        .//some codes
        .
    }
}
$result01->close();
        .
        .//some codes
        .
$result->close();
$conn->close();

echo $optionUse.'?'.$checkboxVerify.'?'.$output.'?'.$hasCheckDate;
?>

save.php

<?php
session_start();
include_once '../control/mysql_start.php';

$arrayObjs = $_POST;
        .
        .//some codes
        .
$msDanger = '';

foreach($arrayObjs as $array)
{
    foreach($array as $row)
    {
        $UserId          = $row['UserId'];
        $UserName        = $row['UserName'];
        .
        .//some codes
        .
        $strSql = "SELECT * FROM manufacturejobschedulingpersonal where string_20_1 = '".
                  $UserId."' AND"." date_format(DateTime_1,'%Y-%m-%d') = '$DateTime_1'";
        $result = $conn->query($strSql);

        if( $result->num_rows > 0) {
            if ($table == 'main') {
                $strSql = "Update manufacturejobschedulingpersonal SET String_10_1 ='$String_10_1', String_Assist01 ='$assist_1',String_Assist02='$assist_2' where string_20_1 = '".
                          $UserId."' AND"." date_format(DateTime_1,'%Y-%m-%d') = '$DateTime_1'";
            } else {
                $strSql = "Update manufacturejobschedulingpersonal SET String_10_1 ='$String_10_1' where string_20_1 = '".
                          $UserId."' AND"." date_format(DateTime_1,'%Y-%m-%d') = '$DateTime_1'";
            }
            $result = $conn->query($strSql);
        } else {
            $strSql = "INSERT INTO manufacturejobschedulingpersonal (string_20_1,string_20_2,YM,DateTime_1,String_10_1,String_Assist01,String_Assist02)".
                      "VALUES ( '$UserId', '$UserName', '$YM', '$DateTime_1', '$String_10_1','$assist_1','$assist_2')";
            $result = $conn->query($strSql);
        }
        .
        .//A lot of sql CRUD
        .
    }
}
$conn->close();
$last_line = exec('java -jar C:/CCERP/ChainCodeERP/ExtraModule/HRMultiOTCheck/HRMultiOTCheck.jar -ssa '.$javaDate.' ' .$javaDepId, $return_var);
echo 'Updated';
?>

0 个答案:

没有答案