Как вывести MySQLi $ stmt, когда $ stmt-> execute () сбивает мой apache сервер? - PullRequest
0 голосов
/ 18 февраля 2020

Каков наилучший способ вывода MySQLi $ stmt, когда $ stmt-> execute () дает сбой моему apache серверу? Как я могу узнать, что идет не так?

Проблема : у меня есть сервер Apache, работающий на веб-сайте Ubuntu OS, где пользователь выбирает переменные в форме и сохраняет в переменную $ _POST. В результате. php, оператор sql создается и сохраняется в $ sql. Периодически веб-сайт выдает ошибку ERR_EMPTY_RESPONSE, особенно при более крупных ответах. Сервер Apache, похоже, обрабатывает sh во время функции $ stmt-> execute (). В результатах есть два места. php, которые он запускает, и оба периодически терпят неудачу. Могу ли я просто вывести $ sql в журнал ошибок?

    $stmt = $db->prepare($sql);
    if($stmt){
            error_log("\t\$stmt set\n", 3, "/tmp/php_errors.log"); 
            if($stmt->execute()){
                    error_log("\t\$stmt executed\n", 3, "/tmp/php_errors.log");
                    $stmt->bind_result($FIRSTNAME, $LASTNAME, $PHONE, $ADDRESS, $ADDRESS2, $CITY, $STATE, $ZIP, $HOMEOWNER,
                       $AGE, $DOB_M, $DOB_Y, $INCOME, $CREDIT, $NETWORTH, $MORTGAGEAMOUNT, $MORTGAGEAMOUNT2,
                       $MORTGAGEDATE, $LOANTOVALUE, $ID);

Я добавил error_logs для документирования каждого шага и для операторов if, которые должны прекратить выполнение, если предыдущий оператор завершится неудачно. Тем не менее, он все еще выполняется и не показывает никаких ошибок в var / log / mysql / error.log. / var / log / mysql / error.log пусто

Сервер сообщает, что он выключается и возобновляет обычные операции. / var / log / apache2 / error.log

[Tue Feb 18 19:07:18.403816 2020] [mpm_prefork:notice] [pid 15875] AH00169: caught SIGTERM, shutting down
[Tue Feb 18 19:07:18.694876 2020] [mpm_prefork:notice] [pid 15940] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f mod_wsgi/3.4 Python/2.7.6 mod_perl/2.0.8 Perl/v5.18.2 configured -- resuming normal operations
[Tue Feb 18 19:07:18.694919 2020] [core:notice] [pid 15940] AH00094: Command line: '/usr/sbin/apache2' zend_mm_heap corrupted
[Tue Feb 18 19:07:49.183657 2020] [core:notice] [pid 15940] AH00051: child pid 15961 exit signal Segmentation fault (11), possible coredump in /etc/apache2
[Tue Feb 18 19:07:49.183720 2020] [mpm_prefork:notice] [pid 15940] AH00169: caught SIGTERM, shutting down
[Tue Feb 18 19:07:49.620150 2020] [mpm_prefork:notice] [pid 16009] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f mod_wsgi/3.4 Python/2.7.6 mod_perl/2.0.8 Perl/v5.18.2 configured -- resuming normal operations
[Tue Feb 18 19:07:49.620192 2020] [core:notice] [pid 16009] AH00094: Command line: '/usr/sbin/apache2'
[Tue Feb 18 19:08:19.856129 2020] [mpm_prefork:notice] [pid 16009] AH00169: caught SIGTERM, shutting down

Вот код, установленный для error_reporting

ini_set("log_errors", 1);
error_reporting(E_ALL);
error_log("------------------------\n", 3, "/tmp/php_errors.log");
error_log("b2c_access/results.php running...\n", 3, "/tmp/php_errors.log");

// Error Reporting to find bug causing crashes
function myExceptionHandler ($e)
{
        error_log($e, 3, "/tmp/php_errors.log");
        if (ini_get('display_errors')) {
                echo $e;
        } else {
                echo "<h1>500 Internal Server Error</h1>
                        An internal server error has occurred.<br>
                        Please try again later.";
        }
}

set_exception_handler('myExceptionHandler');

set_error_handler(function ($level, $message, $file = '', $line = 0)
{
    throw new ErrorException($message, 0, $level, $file, $line);
});

register_shutdown_function(function ()
{
    $error = error_get_last();
    if ($error !== null) {
        $e = new ErrorException(
            $error['message'], 0, $error['type'], $error['file'], $error['line']
        );
        myExceptionHandler($e);
    }
});

Столбцы и типы

Columns of table:
firstname varchar(30) 
lastname varchar(30) 
address varchar(60) 
address2 varchar(60) 
state char(2) 
zip char(5) 
city varchar(30) 
latitude float(10,6) 
longitude float(10,6) 
timezone char(1) 
dwellingtype char(1) 
areacode varchar(3) 
phone1 varchar(10) 
phone char(10) 
phone_cell varchar(10) 
income varchar(1) 
homeowner varchar(1) 
lengthofresidence varchar(2) 
presenceofchildren varchar(1) 
gender varchar(1) 
dob_y varchar(4) 
dob_m varchar(2) 
dob_d varchar(2) 
age int(11) 
maritalstatus varchar(1) 
occupation varchar(4) 
language varchar(2) 
religion varchar(1) 
education char(1) 
businessowner char(1) 
credit char(1) 
investstocks varchar(1) 
networth varchar(1) 
lineofcredit varchar(1) 
creditcardindictator varchar(1) 
creditcardnewissue varchar(1) 
investactive varchar(1) 
investpersonal varchar(1) 
investrealestate varchar(1) 
opportunityseekers char(1) 
donor varchar(1) 
vetinhousehold varchar(1) 
smoker char(1) 
politicaldonor char(1) 
politicaldonorconservative char(1) 
politicaldonorliberal char(1) 
seniorinhousehold char(1) 
tvcable char(1) 
tvsatellite char(1) 
intendtopurchasehomeimp char(1) 
gamingcasino char(1) 
travel char(1) 
exercise char(1) 
dietweightloss char(1) 
autopartsaccessories char(1) 
swimmingpool char(1) 
homeyearbuilt varchar(4) 
mortgagerate varchar(6) 
mortgageratetype varchar(1) 
mortgageloantype varchar(1) 
refinanceyear varchar(4) 
refinancemonth varchar(2) 
refinanceratetype varchar(1) 
refinanceloantype varchar(1) 
mortgageamount varchar(8) 
mortgageamount2 varchar(8) 
mortgagedate varchar(8) 
loantype varchar(1) 
loantype2 varchar(1) 
interestrate varchar(6) 
interestrate2 varchar(6) 
loantovalue varchar(3) 
md5_match_key binary(32) 
dnc tinyint(4) 
ID int(11) AI PK

/ var / error_log /

[Tue Feb 18 10:33:54.085090 2020] [:error] [pid 21542] [client 25.255.2.25:34047] script '/var/www/html/XXXXXXXX.com/phpmyminiadmin.php' not found or unable to stat
[Tue Feb 18 10:33:55.733002 2020] [:error] [pid 21542] [client 25.255.2.25:52955] script '/var/www/html/XXXXXXXX.com/phpminiadmin.php' not found or unable to stat
[Tue Feb 18 10:33:57.367823 2020] [:error] [pid 21543] [client 25.255.2.25:38595] script '/var/www/html/XXXXXXXX.com/PHPMINIADMIN.php' not found or unable to stat
[Tue Feb 18 10:33:58.995800 2020] [:error] [pid 21537] [client 25.255.2.25:60031] script '/var/www/html/XXXXXXXX.com/miniadmin.php' not found or unable to stat
[Tue Feb 18 10:34:00.645425 2020] [:error] [pid 21542] [client 25.255.2.25:51185] script '/var/www/html/XXXXXXXX.com/myadmin.php' not found or unable to stat
[Tue Feb 18 10:34:02.285216 2020] [:error] [pid 21543] [client 25.255.2.25:25137] script '/var/www/html/XXXXXXXX.com/dbadmin.php' not found or unable to stat
[Tue Feb 18 10:34:03.914024 2020] [:error] [pid 21537] [client 25.255.2.25:37859] script '/var/www/html/XXXXXXXX.com/phpadmin.php' not found or unable to stat
[Tue Feb 18 10:34:05.555993 2020] [:error] [pid 21542] [client 25.255.2.25:44265] script '/var/www/html/XXXXXXXX.com/adm.php' not found or unable to stat
[Tue Feb 18 10:34:07.190802 2020] [:error] [pid 21543] [client 25.255.2.25:48471] script '/var/www/html/XXXXXXXX.com/PHPminiadmin.php' not found or unable to stat

Моя лучшая стратегия для исправления этой ошибки - получить выходные данные операторов sql и запустить их в MySQL Workbench, чтобы увидеть если я смогу получить соответствующую информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...